Python Lambda-Funktionen: Leitfaden für anonyme Funktionen

Erfahren Sie, wie Sie anonyme Lambda-Funktionen in Python schreiben. Beherrschen Sie funktionale Programmiermuster mit map(), filter() und sorted() mit Lambda-Syntax.

Versuchen Sie es im Editor

Übersicht

In Python sind Lambda-Funktionen – auch anonyme Funktionen genannt – kleine, schnelle, einzeilige Funktionen, die weder das Standardschlüsselwort „def“ noch einen formalen Namen erfordern. Sie sind für die vorübergehende, schnelle Verwendung gedacht und ermöglichen es Ihnen, funktionale Logik als Argument direkt inline zu übergeben. Dadurch wird Ihr Code kompakter und der Aufwand für das Schreiben vollwertiger Hilfsfunktionen, die nur an einer Stelle aufgerufen werden, verringert sich.

Die Syntax einer Lambda-Funktion ist einfach: „Lambda-Argumente: Ausdruck“. Im Gegensatz zu Standardfunktionen verfügt ein Lambda über keine explizite „Return“-Anweisung; Der Ausdruck wird automatisch ausgewertet und zurückgegeben. Darüber hinaus sind Lambda-Funktionen auf einen einzigen Ausdruck beschränkt, was bedeutet, dass Sie in ihnen keine komplexen mehrzeiligen Schleifen, Zuweisungen oder Bedingungsblöcke schreiben können, was einen sauberen, funktionalen Ansatz erzwingt.

Lambda-Funktionen werden häufig in Kombination mit integrierten Funktionen höherer Ordnung wie „map()“ (die eine Funktion auf jedes Element in einer Liste anwendet), „filter()“ (das Elemente beibehält, die einer Bedingung entsprechen) und „sorted()“ (das Elemente mithilfe eines benutzerdefinierten Sortierschlüssels sortiert) verwendet. Beispielsweise ist das Sortieren einer Liste von Wörterbüchern nach einem bestimmten Wörterbuchschlüssel ein Kinderspiel, wenn ein Lambda als Sortierschlüssel verwendet wird. Wenn Sie Lambda-Funktionen verstehen, erhalten Sie ein wichtiges Werkzeug zum Schreiben von sauberem Python-Code.

Code- und Ausführungsausgabe

Sortieren komplexer Wörterbuchlisten und Filtern von Datensätzen mithilfe anonymer Inline-Funktionen.

# Sorting using lambda
students = [
    {"name": "Alice", "grade": 88},
    {"name": "Bob", "grade": 95},
    {"name": "Charlie", "grade": 90}
]

# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
    print(f"- {student['name']}: {student['grade']}")

# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")
Terminal-Ausgabe
Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88

Odd numbers: [1, 3, 5, 7]

Schrittweise Umsetzung

  • Übergabe benutzerdefinierter Sortierkriterien an list.sort() und sorted()
  • Anwenden von Inline-Transformationen in Data-Science-Pipelines
  • Definieren von Schnellrückrufen in ereignisgesteuerten UI-Apps

Häufig gestellte Fragen

Kann eine Lambda-Funktion mehrere Argumente annehmen?

Ja, Sie können mehrere durch Kommas getrennte Argumente definieren, z. B. Lambda x, y: x + y.

Warum werden Lambda-Funktionen anonym genannt?

Weil sie im Gegensatz zu Def-Funktionen, die einen bestimmten Namen im lokalen Namespace registrieren, ohne Namensbindung erstellt werden.

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.