Die Python-Funktion min() ist das Pendant zu max(): Sie liefert das kleinste 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 an beliebige Datentypen anpassen.

Einleitung

min() hat zwei Aufruf-Varianten:

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

In beiden Fällen werden Elemente paarweise mit < verglichen. Bei Strings wird lexikografisch verglichen, bei Tupeln komponentenweise.

Die key-Funktion verändert nur den Vergleichsmaßstab, nicht den Rückgabewert: min() liefert immer das ursprüngliche Element. Klassisch für „kürzestes Wort", „günstigstes Produkt", „oldest Datensatz".

default rettet vor ValueError bei leerer Eingabe — ohne default und mit leerem Iterable wird ein Fehler geworfen.

Syntax

Python Syntax
min(iterable, *, key=None)
min(iterable, *, key=None, default=...)
min(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) Rückgabewert für ein leeres Iterable. Ohne default und mit leerem Iterable wirft min() einen ValueError.

Rückgabewert

Das kleinste Element gemäß <-Vergleich (oder key()-Vergleich). Bei Gleichstand wird das erste Element in der Iteration zurückgegeben.

Beispiele

Standard-Verwendung mit Zahlen, Argumenten und Strings

Bei Strings wird lexikografisch verglichen — Großbuchstaben kommen vor Kleinbuchstaben (wegen ASCII-Codepunkten):

Python Beispiel
print(min([3, 1, 4, 1, 5, 9, 2, 6]))
print(min(3, 1, 4))
print(min("Hallo Welt"))      # Leerzeichen ist das kleinste Zeichen
print(min(["banana", "Apfel", "kiwi"]))
Output
1
1
 
Apfel

Mit key-Funktion

Wer das kürzeste Wort sucht, vergleicht nach Länge — nicht nach den Buchstaben selbst:

Python Beispiel
words = ["Apfel", "Kiwi", "Wassermelone", "Birne"]
print(min(words, key=len))      # kürzestes Wort
print(min(words))                # alphabetisch erstes
Output
Kiwi
Apfel

Mit default für leere Iterables

Ohne default erzeugt eine leere Liste einen ValueErrordefault macht den Fall sicher behandelbar:

Python Beispiel
leer = []
print(min(leer, default=float("inf")))

try:
    min(leer)
except ValueError as e:
    print(e)
Output
inf
min() iterable argument is empty

Praktische Beispiele

Günstigstes Produkt finden

Klassischer Anwendungsfall: Eine Liste von Dictionaries nach einem Feldwert vergleichen:

Python Beispiel
products = [
    {"name": "Laptop",  "preis": 1299},
    {"name": "Maus",    "preis": 25},
    {"name": "Monitor", "preis": 449},
]
cheapest = min(products, key=lambda p: p["preis"])
print(cheapest)
Output
{'name': 'Maus', 'preis': 25}

Ältester Eintrag nach Datum

Auch Datums-Werte können als key direkt verglichen werden — datetime-Objekte unterstützen <:

Python Beispiel
from datetime import date
entries = [
    {"name": "A", "datum": date(2026, 5, 1)},
    {"name": "B", "datum": date(2024, 7, 14)},
    {"name": "C", "datum": date(2025, 1, 9)},
]
oldest = min(entries, key=lambda e: e["datum"])
print(oldest)
Output
{'name': 'B', 'datum': datetime.date(2024, 7, 14)}

Wert begrenzen mit min/max

Eine Kombination aus min() und max() ist die kompakteste Form, einen Wert in einem Bereich zu „klemmen" (clamp):

Python Beispiel
def clamp(value, untergrenze, obergrenze):
    return min(max(value, untergrenze), obergrenze)

print(clamp(150, 0, 100))
print(clamp(-5, 0, 100))
print(clamp(42, 0, 100))
Output
100
0
42

Praktische Hinweise

  • min(iter, default=...) ist sauberer als min(iter) if iter else fallback.
  • Stabilität: Bei mehreren gleich kleinen Elementen gewinnt das erste.
  • Performance: O(n) — min() iteriert genau einmal durch die Eingabe.
  • Kombination: min() und max() zusammen sind ideal für „clamp"-Logik.
  • Verwandte Funktionen: max() (größtes), sorted()[0] (langsamer), heapq.nsmallest(n, ...) (Bottom-N).
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht