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
keyfunction)
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
keyparameter allows advanced comparisons. - The
defaultparameter prevents errors when dealing with empty iterables.