pyguides

max()

max(iterable, *[, key, default])

The max() function returns the largest item in an iterable or the largest of two or more arguments. It accepts an optional key parameter for custom comparison logic and a default value for empty iterables.

Syntax

max(iterable, *[, key, default])
max(arg1, arg2, *args)

Parameters

ParameterTypeDefaultDescription
iterableiterableAn iterable containing comparable elements
*argsobjectsMultiple arguments to compare (instead of iterable)
keycallableNoneA function that returns a value to compare
defaultobjectNoneValue to return if the iterable is empty

Examples

Basic usage with a list

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
result = max(numbers)
print(result)
# 9

Multiple arguments

result = max(3, 1, 4, 1, 5, 9, 2, 6)
print(result)
# 9

Using key parameter

words = ["apple", "banana", "cherry", "date"]
longest = max(words, key=len)
print(longest)
# 'banana'

Using default for empty iterable

empty_list = []
result = max(empty_list, default=0)
print(result)
# 0

Finding maximum in a list of dictionaries

students = [
    {"name": "Alice", "grade": 85},
    {"name": "Bob", "grade": 92},
    {"name": "Charlie", "grade": 78}
]

top_student = max(students, key=lambda x: x["grade"])
print(top_student)
# {'name': 'Bob', 'grade': 92}

Common Patterns

Finding the key with maximum value

word_lengths = {"apple": 5, "banana": 6, "cherry": 6}
longest_word = max(word_lengths, key=word_lengths.get)
print(longest_word)
# 'banana'

Conditional max

numbers = [1, -5, 3, -2, 7, -1]
max_positive = max(n for n in numbers if n > 0)
print(max_positive)
# 7

Errors

  • ValueError: If the iterable is empty and no default is provided:

    max([])  # ValueError: max() arg is an empty sequence
  • TypeError: If comparing incompatible types:

    max([1, "a"])  # TypeError: '>' not supported between instances

See Also

  • min() — returns the smallest item
  • sorted() — returns a sorted list (ascending by default)