So verwenden Sie Lambda-Funktionen in Python (anonyme Funktionen)

Erfahren Sie, wie Sie Lambda-Funktionen in Python verwenden. Beherrschen Sie anonyme Funktionen, Inline-Rückrufe und das Sortieren von Listendaten mit Lambda-Schlüsseln.

Probieren Sie diese Lösung im Editor aus

Übersicht

In Python sind Funktionen erstklassige Bürger, das heißt, sie können Variablen zugewiesen, als Argumente an andere Funktionen übergeben und von Funktionen zurückgegeben werden. Während Standardfunktionen mit dem Schlüsselwort „def“ deklariert werden, bietet Python auch eine Kurzsyntax zum Erstellen anonymer Inline-Funktionen: „Lambda“-Funktionen.

Eine Lambda-Funktion wird mit dem Schlüsselwort „Lambda“ definiert, gefolgt von einer Liste von Argumenten, einem Doppelpunkt und einem einzelnen Ausdruck. Die Syntax lautet „Lambda-Argumente: Ausdruck“. Im Gegensatz zu „def“-Funktionen erfordern Lambdas keine „return“-Anweisung; Das Ergebnis des Ausdrucks wird automatisch zurückgegeben. Sie sind auf eine einzige logische Zeile beschränkt und eignen sich daher ideal für einfache, einmalige Vorgänge.

Lambda-Funktionen werden am häufigsten als Argumente für Funktionen höherer Ordnung wie „sorted()“, „map()“ und „filter()“ verwendet. Sie können beispielsweise eine Lambda-Funktion an das „key“-Argument von „sorted()“ übergeben, um benutzerdefinierte Sortierkriterien zu definieren, oder sie als einfache Rückruffunktionen in grafischen oder ereignisgesteuerten Anwendungen verwenden.

Code- und Ausführungsausgabe

Dieses Skript demonstriert die Erstellung einfacher anonymer Funktionen mithilfe von Lambda.

lambda_functions.py
Versuchen Sie es im Editor
# 1. Simple lambda function assigned to a variable
double = lambda x: x * 2
print("Double of 5:", double(5))

# 2. Multi-argument lambda
add = lambda x, y: x + y
print("Sum of 3 + 4:", add(3, 4))

# 3. Using lambda as a sorting key (sorting by age)
people = [
    {"name": "Alice", "age": 28},
    {"name": "Bob", "age": 22},
    {"name": "Charlie", "age": 35}
]
people.sort(key=lambda person: person["age"])
print("Sorted by age:", people)
Terminal-Ausgabe
Double of 5: 10
Sum of 3 + 4: 7
Sorted by age: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 28}, {'name': 'Charlie', 'age': 35}]

Schrittweise Umsetzung

  • Schreiben Sie das Schlüsselwort Lambda, gefolgt von Ihren durch Kommas getrennten Parameternamen.
  • Platzieren Sie einen Doppelpunkt, gefolgt von dem einzelnen Ausdruck, den Sie auswerten und zurückgeben möchten.
  • Übergeben Sie das Lambda direkt als Rückruf an Funktionen wie sorted(), map() oder filter().

Häufig gestellte Fragen

Kann eine Lambda-Funktion Schleifen oder mehrere Anweisungen enthalten?

Nein, Lambda-Funktionen in Python sind streng auf einen einzelnen Ausdruck beschränkt. Wenn Sie komplexe Logik, Schleifen oder Variablenzuweisungen benötigen, müssen Sie mit def eine Standardfunktion definieren.

Soll ich Variablen Lambda-Funktionen zuweisen?

Generell nein. In den PEP 8-Richtlinien wird die Verwendung einer standardmäßigen Def-Anweisung anstelle der Zuweisung eines Lambda zu einer Variablen empfohlen, da Standardfunktionen bessere Stack-Trace-Namen bereitstellen.

Verwandte Themen

Empfohlene Python-Ressourcen

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