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.
Ü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.
# 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)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
Erfahren Sie, wie Sie eine Liste in Python mit der Methode sort() und der Funktion sorted() sortieren. Entdecken Sie Beispiele für benutzerdefinierte Schlüsselsortierung und umgekehrte Reihenfolge.
So verwenden Sie das Listenverständnis in PythonErfahren Sie, wie Sie Listenverständnisse in Python verwenden. Schreiben Sie prägnante Schleifen, wenden Sie bedingte Filter an und erstellen Sie Matrizen mit klarer visueller Syntax.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Funktionen
Beherrschen Sie Python-Funktionen. Erfahren Sie, wie Sie mit def wiederverwendbaren Code schreiben, Argumente definieren, Werte zurückgeben und den lokalen und globalen Bereich verstehen.
Spickzettel für Funktionen des Python-Mathemoduls
Kurzanleitung für die Python-Mathe-Standardbibliothek. Erfahren Sie, wie Sie trigonometrische, logarithmische, rundende und arithmetische Funktionen verwenden.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.