Die Python-Funktion max() liefert das größte Element — entweder aus einem Iterable oder aus mehreren übergebenen Argumenten. Über die optionalen Schlüsselargumente key (Vergleichs-Schlüssel) und default (Rückgabewert für leeres Iterable) lässt sich das Verhalten flexibel an jeden Datentyp anpassen — Zahlen, Strings, Tupel, Objekte.

Einleitung

max() hat zwei Aufruf-Varianten:

  1. Mit einem Iterable: max([3, 1, 4])4
  2. Mit mehreren Argumenten: max(3, 1, 4)4

In beiden Fällen werden die Elemente paarweise mit < verglichen. Die Vergleichsregeln folgen Python-Standard: Zahlen numerisch, Strings lexikografisch, Tupel komponentenweise.

Die key-Funktion erlaubt Custom-Vergleiche: Sie wird auf jedes Element angewendet, das Ergebnis wird verglichen — das Original-Element wird zurückgegeben. Klassisches Pattern für „längstes Wort", „teuerstes Produkt", „neuester Eintrag".

default rettet vor ValueError bei leerem Iterable: max([], default=0)0.

Syntax

Python Syntax
max(iterable, *, key=None)
max(iterable, *, key=None, default=...)
max(arg1, arg2, *args, key=None)
Parameter
iterable

Eine Iterable mit vergleichbaren Elementen.

arg1, arg2, ...

Zwei oder mehr direkt übergebene Werte.

key

(Optional, Keyword) Einstellige Funktion, deren Rückgabe für den Vergleich genutzt wird.

default

(Optional, Keyword — nur bei einem leeren Iterable erlaubt) Rückgabewert für leere Iterables. Ohne default und mit leerer Iterable wirft max() einen ValueError.

Rückgabewert

Das größte Element gemäß <-Vergleich (oder key()-Vergleich). Bei mehreren gleich großen wird das erste zurückgegeben.

Beispiele

Standard

Python Beispiel
print(max([3, 1, 4, 1, 5, 9, 2, 6]))
print(max(3, 1, 4))
print(max("Hallo Welt"))   # größtes Zeichen
Output
9
4
o

Mit key-Funktion

Python Beispiel
words = ["Apfel", "Birne", "Wassermelone", "Kiwi"]
print(max(words, key=len))             # längstes Wort
print(max(words))                       # alphabetisch größtes
Output
Wassermelone
Wassermelone

Mit default

Python Beispiel
leer = []
print(max(leer, default=0))

try:
    max(leer)
except ValueError as e:
    print(e)
Output
0
max() iterable argument is empty

Praktische Beispiele

Teuerstes Produkt finden

Python Beispiel
products = [
    {"name": "Laptop", "preis": 1299},
    {"name": "Tastatur", "preis": 89},
    {"name": "Monitor", "preis": 449},
]
most_expensive = max(products, key=lambda p: p["preis"])
print(most_expensive)
Output
{'name': 'Laptop', 'preis': 1299}

Häufigstes Element bestimmen

Python Beispiel
from collections import Counter
words = ["a", "b", "a", "c", "a", "b"]
c = Counter(words)
most_frequent = max(c, key=c.get)
print(most_frequent)
Output
a

Maximum mit Tupel-Vergleich

Python Beispiel
# Tupel werden komponentenweise verglichen
entries = [("Alice", 17), ("Bob", 24), ("Cleo", 24)]
# Ältester — bei Gleichstand alphabetisch letzter Name
oldest = max(entries, key=lambda x: (x[1], x[0]))
print(oldest)
Output
('Cleo', 24)

Praktische Hinweise

  • max(iter, default=...) ist viel sauberer als max(iter) if iter else fallback.
  • Stabilität: Bei mehreren gleich großen Elementen gewinnt das erste. Wer das letzte will: max(reversed(seq), key=...).
  • Performance: O(n) — max() iteriert genau einmal.
  • Negative Liste/Iterable: max(reversed(seq)) ist äquivalent zu min(seq) nicht — Vergleich passiert immer normal.
  • Verwandte Funktionen: min() (smallest), sorted(...)[-1] (langsamer), heapq.nlargest(n, ...) (Top-N).
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht