max() function in Python
The max()
function is a built-in function in Python used to find the largest value in an iterable (like a list or tuple) or among multiple values.
It is very useful for working with:
- Numbers
- Strings
- Lists and Tuples
- Dictionaries
- Custom Objects (with
key
function)
1. Syntax of max()
There are two main ways to use max()
:
A. Finding the Maximum in an Iterable
max(iterable, *[, key, default])
Parameters
iterable
– A sequence (list, tuple, dictionary, etc.) from which the maximum value is found.key
(optional) – A function that specifies the criteria for comparison.default
(optional, only for iterables) – A value to return if the iterable is empty.
B. Finding the Maximum Among Multiple Values
max(arg1, arg2, *args[, key])
Parameters
arg1, arg2, *args
– Multiple values to compare and find the maximum.key
(optional) – A function that specifies the criteria for comparison.
2. Finding the Maximum in a List
Example 1: Using max()
on a List
numbers = [10, 50, 30, 70, 20]
result = max(numbers)
print(result)
Output:
70
Explanation:
Among [10, 50, 30, 70, 20]
, the largest number is 70
.
Example 2: Finding the Maximum of Multiple Arguments
result = max(3, 7, 2, 9, 5)
print(result)
Output:
9
Explanation:
Among 3, 7, 2, 9, 5
, the largest value is 9
.
3. Using max()
with Tuples
Example 3: Finding the Maximum in a Tuple
nums = (4, 8, 2, 10)
result = max(nums)
print(result)
Output:
10
Explanation:
Among (4, 8, 2, 10)
, the highest number is 10
.
4. Using max()
with Strings
Example 4: Finding the Maximum Character in a String
result = max("hello")
print(result)
Output:
o
Explanation:
The ASCII values of the characters are:
- ‘h’ = 104
- ‘e’ = 101
- ‘l’ = 108
- ‘o’ = 111 (highest ASCII value)
So, max("hello")
returns 'o'
.
5. Using max()
with a Dictionary
Example 5: Finding the Maximum Dictionary Key
data = {1: 'one', 3: 'three', 2: 'two'}
result = max(data)
print(result)
Output:
3
Explanation:
The dictionary keys are {1, 3, 2}
. The highest key is 3
.
Example 6: Finding the Maximum Dictionary Value
result = max(data.values())
print(result)
Output:
two
Explanation:
- The values are
{ "one", "three", "two" }
. - Alphabetically,
"two"
comes last.
6. Using the key
Parameter
The key
parameter allows us to specify a function for comparison.
Example 7: Finding the Longest Word in a List
words = ["apple", "banana", "cherry", "blueberry"]
result = max(words, key=len)
print(result)
Output:
blueberry
Explanation:
The word lengths:
- “apple” → 5
- “banana” → 6
- “cherry” → 6
- “blueberry” → 9 (longest)
So, "blueberry"
is the maximum.
Example 8: Finding the Maximum Based on Absolute Value
numbers = [-10, -5, 3, 8, -20]
result = max(numbers, key=abs)
print(result)
Output:
-20
Explanation:
Comparing absolute values:
|-10| = 10
|-5| = 5
|3| = 3
|8| = 8
|-20| = 20
(largest)
So, max()
returns -20
.
7. Using default
to Handle Empty Iterables
If an iterable is empty, max()
raises an error unless we specify default
.
Example 9: Using default
with an Empty List
result = max([], default="No values")
print(result)
Output:
No values
Explanation:
Since the list is empty, "No values"
is returned instead of an error.
8. Using max()
with a Custom Function
We can define our own function for comparisons.
Example 10: Finding the Student with the Highest Score
students = [("Alice", 85), ("Bob", 92), ("Charlie", 78)]
result = max(students, key=lambda x: x[1])
print(result)
Output:
('Bob', 92)
Explanation:
Students and their scores:
- Alice → 85
- Bob → 92 (highest)
- Charlie → 78
So, max()
returns ("Bob", 92)
.
Explanation:
Students and their scores:
- Alice → 85
- Bob → 92 (highest)
- Charlie → 78
So, max()
returns ("Bob", 92)
.
9. Common Errors in max()
Error 1: Calling max()
on an Empty Iterable Without default
print(max([]))
Error Output:
ValueError: max() arg is an empty sequence
Fix: Use default
to prevent this error.
Error 2: Using max()
with Incompatible Data Types
print(max(10, "hello"))
Error Output:
TypeError: '>' not supported between instances of 'str' and 'int'
Fix: Ensure all elements are comparable.
10. Summary of max()
Feature | Description |
---|---|
Basic Use | Finds the largest value in an iterable or among multiple values. |
Iterable Input | Works with lists, tuples, dictionaries, and strings. |
Multiple Arguments | Compares multiple numbers or strings. |
Key Parameter | Custom comparison (e.g., length, absolute value, etc.). |
Default Parameter | Provides a fallback value for empty iterables. |
Errors | Raises ValueError for empty sequences without default . |
Final Thoughts
max()
is versatile and widely used in Python.- The
key
parameter allows advanced comparisons. - The
default
parameter prevents errors when dealing with empty iterables.