20% off with code ERSTIS26
5 min read 02 Sept 2026

Python Lambda Funktion einfach erklärt: Syntax & Beispiele

Lambda-Funktionen in Python: Erfahre, wie du anonyme Einzeiler-Funktionen schreibst und wann du sie sinnvoll einsetzt – mit Beispielen.

Marcel Schmidtpeter By Marcel Schmidtpeter 02 Sept 2026
Python Lambda Funktion einfach erklärt: Syntax & Beispiele

Du sitzt im Pair-Programming mit deinem Kollegen, und plötzlich flimmert diese Zeile über den Bildschirm:

python
personen.sort(key=lambda person: person["alter"])

Kein `def`, kein Funktionsname, nur dieses komische `lambda`. Wenn du dich beim ersten Mal gefragt hast, was hier passiert - du bist nicht allein. Genau das klären wir jetzt: die Python Lambda Funktion mit Syntax, Anwendungsfällen und den typischen Stolperfallen.

Was ist eine Python Lambda Funktion?

Eine Lambda-Funktion ist eine kleine, anonyme Funktion (also eine Funktion ohne Namen), die aus genau einem Ausdruck besteht und dessen Ergebnis sofort zurückgibt.

Stell dir vor, du brauchst mal kurz einen Taschenrechner für eine einzige Rechnung - du kaufst deshalb keinen neuen Rechner, du nutzt eben schnell den vom Handy. Genauso ist eine Lambda-Funktion: ein Wegwerf-Werkzeug für eine kleine Aufgabe, die keinen eigenen Namen verdient.

Merke: Lambda-Funktionen sind Einzeiler ohne `def` und ohne `return` - der Ausdruck hinter dem Doppelpunkt ist automatisch der Rückgabewert.

Die offizielle Beschreibung findest du in den Python Docs. Mehr zu anonymen Funktionen allgemein liest du in unserem Beitrag zu Python anonyme Funktionen.

Wie sieht die Syntax einer Lambda-Funktion aus?

Der Aufbau folgt immer demselben Muster: das Schlüsselwort `lambda`, danach die Parameter, ein Doppelpunkt und am Ende ein einzelner Ausdruck.

python
lambda parameter: ausdruck

Vergleiche das mit einer normalen Funktion:

python
# Normale Funktion mit def
def quadriere(x):
    return x * x


# Dasselbe als Lambda
quadriere = lambda x: x * x

print(quadriere(5))  # Ausgabe: 25

Beide Varianten liefern dasselbe Ergebnis. Der Unterschied: Das Lambda braucht keine Zeile für `def` und `return`, weil alles in einer Zeile passiert.

Wichtig zu wissen: Hinter dem Doppelpunkt steht ein Ausdruck (englisch: *expression*), keine Anweisung (*statement*). Ein Ausdruck liefert einen Wert - `x * x` tut das. Eine Anweisung wie `x = 5` oder `return x` tut das nicht und ist in einem Lambda verboten.

Wann nutzt du Lambda - und wann besser nicht?

Lambda-Funktionen glänzen überall dort, wo eine Funktion nur als Zwischenlösung gebraucht wird, typischerweise als Argument für andere Funktionen wie `sorted()`, `filter()` oder `map()`.

Die Entscheidung zwischen `def` und `lambda` kannst du an dieser Tabelle festmachen:

Kriterium

`def`-Funktion

Lambda-Funktion

Zeilen

Beliebig viele

Genau eine

Name

Ja

Nein (anonym)

`return`

Explizit

Implizit

Komplexität

Beliebig

Ein einzelner Ausdruck

Typische Nutzung

Wiederverwendbare Logik

Kurzlebiger Einzeiler

Faustregel: Wenn du die Logik öfter brauchst oder mehr als einen Blick brauchst, um sie zu verstehen, nimm `def`. Warum? Weil lesbarer Code in Prüfung und Beruf wichtiger ist als kürzester Code.

Merke: Lambda für den schnellen Einzeiler, `def` für alles, was einen Namen und Ruhe verdient.

Wie nutzt du Lambda-Funktionen in der Praxis?

Der wichtigste Anwendungsfall ist das `key`-Argument beim Sortieren - genau der Fall, der dir in Klausuren und im Beruf am häufigsten begegnet. Danach folgen `filter()` und `map()`.

Nehmen wir eine Liste von Personen als Dictionaries (mehr dazu in unserem Artikel zum Python Dictionary):

python
personen = [
    {"name": "Anna", "alter": 24},
    {"name": "Ben", "alter": 19},
    {"name": "Cem", "alter": 31},
]

# Nach Alter sortieren
nach_alter = sorted(personen, key=lambda p: p["alter"])

for person in nach_alter:
    print(person["name"], person["alter"])

# Ausgabe:
# Ben 19
# Anna 24
# Cem 31

Was passiert hier? `sorted()` bekommt mit `key` eine Funktion, die für jedes Element einen Sortierwert berechnet. Das Lambda `lambda p: p["alter"]` sagt also: "Nimm für den Vergleich das Feld `alter`." Ohne `key` würde Python versuchen, ganze Dictionaries zu vergleichen - und mit einem `TypeError` abbrechen. Wie das Sortieren intern funktioniert, erklärt die offizielle Sorting-Anleitung.

Zwei weitere Klassiker sind `filter()` und `map()`. Beide arbeiten mit Iterables - Grundlagen dazu findest du in unserem Beitrag zu Iterable und Iterator in Python:

python
zahlen = [3, 8, 1, 6, 4, 9]

# Nur gerade Zahlen behalten
gerade = list(filter(lambda z: z % 2 == 0, zahlen))
print(gerade)  # Ausgabe: [8, 6, 4]

# Jede Zahl verdoppeln
verdoppelt = list(map(lambda z: z * 2, zahlen))
print(verdoppelt)  # Ausgabe: [6, 16, 2, 12, 8, 18]

Ehrlicher Hinweis: In neuem Code greifen viele Profis heute lieber zu List Comprehensions wie `[z * 2 for z in zahlen]`. In Klausuren, Übungsaufgaben und älterem Code triffst du auf `map()` und `filter()` aber weiterhin ständig - deshalb solltest du beide lesen können.

Ein kleiner Bonus: Bedingte Ausdrücke, also die Kurzform von if/else, funktionieren in Lambdas:

python
status = lambda zahl: "positiv" if zahl > 0 else "negativ oder null"
print(status(-5))  # Ausgabe: negativ oder null

Häufige Fehler bei Lambda-Funktionen

Fast alle Anfängerfehler mit Lambdas lassen sich auf drei Ursachen zurückführen:

Fehler 1: Anweisungen statt Ausdrücken

Anfänger versuchen oft, mehrere Zeilen Logik in ein Lambda zu quetschen. Das scheitert:

python
# FALSCH: Zuweisungen sind Statements, keine Expressions
begruessung = lambda name: gruss = "Hallo " + name
print(gruss)


# RICHTIG: Einfach def nutzen
def begruesse(name):
    gruss = "Hallo " + name
    print(gruss)

Sobald du Zuweisungen, `print()`-Aufrufe oder mehrere Schritte brauchst, ist `def` der richtige Weg.

Fehler 2: Lambda an einen Namen binden

Die Zeile `quadriere = lambda x: x * x` aus unserem Beispiel oben? Die funktioniert, aber PEP 8, der offizielle Python-Styleguide (PEP 8), rät davon ab. Wenn eine Funktion einen Namen braucht, soll sie auch wie eine Funktion definiert werden - mit `def`. Lambdas gehören als Argument in andere Funktionen, nicht in Variablen.

Fehler 3: Unlesbare Einzeiler bauen

python
# Funktioniert, aber niemand will das warten
ergebnis = lambda x: (lambda y: x + y)(x * 2)

Geschachtelte Lambdas erzeugen Code, den du eine Woche später selbst nicht mehr verstehst. In einer Präsentation vor deinem Ausbilder oder Professor wirst du dafür kein Lob ernten. Sobald es komplex wird: auspacken und `def` schreiben.

Übungstipp: Sortiere deine eigene Musikbibliothek

Nimm eine Liste mit deinen fünf Lieblingssongs als Dictionaries - mit Titel, Interpret und Länge in Sekunden. Sortiere sie dann in drei Varianten: nach Titel (alphabetisch), nach Länge (aufsteigend) und nach Interpret in umgekehrter Reihenfolge (Stichwort: `reverse=True`).

Wenn du das ohne Nachschauen schaffst, hast du das Muster `sorted(daten, key=lambda x: x["feld"])` verinnerlicht - und genau dieses Muster taucht in Klausuren ständig auf. Extra-Tipp für Prüfungssituationen: Schreib die Syntax einmal handschriftlich auf. Warum das beim Lernen hilft, erklären wir im Artikel Code handschriftlich üben.

FAQ: Häufige Fragen zu Python Lambda-Funktionen

Kann eine Lambda-Funktion mehrere Parameter haben?

Ja. `lambda a, b: a + b` ist völlig legitim - auch mit Default-Werten wie `lambda a, b=2: a * b`. Nur die Anzahl der Ausdrücke ist auf genau einen begrenzt.

Warum heißt die Funktion "Lambda"?

Der Name stammt aus dem Lambda-Kalkül, einem mathematischen Formalismus aus den 1930er Jahren, in dem anonyme Funktionen eine zentrale Rolle spielen. Python hat das Konzept von der funktionalen Programmierung übernommen - C# kennt das Konzept übrigens auch, wie wir im Beitrag zu anonymen Typen und Lambdas in C# zeigen.

Kann ich if/else in einer Lambda-Funktion nutzen?

Ja, aber nur als bedingten Ausdruck (Ternary Operator): `lambda x: "gross" if x > 10 else "klein"`. Ein klassisches `if` mit eingerücktem Block geht nicht, weil Blöcke Anweisungen sind.

Wann sollte ich lieber def verwenden?

Sobald die Logik mehr als einen einfachen Ausdruck umfasst, die Funktion wiederverwendet wird oder einen aussagekräftigen Namen verdient. Das gilt allerdings nicht, wenn du die Funktion nur einmal als `key`-Argument brauchst - dann ist Lambda genau richtig.

Was ist der Unterschied zwischen map(), filter() und Lambda?

`map()` und `filter()` sind Funktionen, die eine Funktion als Argument erwarten - und dieses Argument ist oft ein Lambda. `map()` wandelt jedes Element um, `filter()` wählt Elemente aus. Das Lambda liefert dabei die Logik.

Fazit

Die Python Lambda Funktion ist kein Hexenwerk, sondern ein kompakter Einzeiler für Funktionen, die keinen Namen brauchen. Die Syntax `lambda parameter: ausdruck` beherrschst du jetzt, und du weißt, wo Lambdas wirklich nützlich sind: als `key` beim Sortieren und als Argument für `filter()` und `map()`.

Merke: Ein Lambda besteht aus einem Ausdruck, gibt dessen Ergebnis automatisch zurück und gehört als Argument in andere Funktionen - nicht an eine Variable gebunden.

Wenn du dich auf eine Prüfung vorbereitest oder bei Themen wie funktionaler Programmierung, List Comprehensions oder Comprehensions generell festhängst: Bei study-it.education findest du individuelle Nachhilfe, die genau auf deinen Lernstand eingeht. Wir holen dich dort ab, wo du stehst - auch wenn das gerade bei `lambda x: x` ist.


Matching tutoring

Want 1:1 help with this topic?

First chat · €0 · 30 min

Need someone to walk through this with you?

Instead of re-reading: 30 min with a senior dev.

Book a free first chat →
About the author
Marcel Schmidtpeter
Marcel Schmidtpeter

Lambda-Funktionen in Python: Erfahre, wie du anonyme Einzeiler-Funktionen schreibst und wann du sie sinnvoll einsetzt – mit Beispielen.

marcel.schmidtpeter@study-it.education →
Keep reading

More reading