Grundlagen von Lambda-Funktionen
Was ist eine Lambda-Funktion?
Eine Lambda-Funktion in Python ist eine kleine, anonyme Funktion, die beliebig viele Argumente haben kann, aber nur einen Ausdruck enthalten kann. Im Gegensatz zu regulären Funktionen, die mit dem def
-Schlüsselwort definiert werden, werden Lambda-Funktionen mit dem lambda
-Schlüsselwort erstellt.
Grundsyntax
Die Grundsyntax einer Lambda-Funktion lautet:
lambda arguments: expression
Einfache Beispiele
Beispiel 1: Grundlegende Lambda-Funktion
## Einfache Lambda-Funktion, um zwei Zahlen zu addieren
add = lambda x, y: x + y
print(add(5, 3)) ## Ausgabe: 8
Beispiel 2: Lambda mit eingebauten Funktionen
## Verwendung von Lambda mit eingebauten Funktionen wie map()
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) ## Ausgabe: [1, 4, 9, 16, 25]
Wesentliche Merkmale
Merkmal |
Beschreibung |
Anonym |
Kein Name erforderlich |
Einziger Ausdruck |
Kann nur einen Ausdruck enthalten |
Kompakt |
Kürzer als die Definition einer regulären Funktion |
Inline |
Kann sofort definiert und verwendet werden |
Häufige Anwendungsfälle
Sortieren
## Sortieren einer Liste von Tupeln basierend auf dem zweiten Element
pairs = [(1, 'one'), (3, 'three'), (2, 'two')]
sorted_pairs = sorted(pairs, key=lambda x: x[1])
print(sorted_pairs) ## Ausgabe: [(1, 'one'), (3, 'three'), (2, 'two')]
Filtern
## Filtern von geraden Zahlen
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) ## Ausgabe: [2, 4, 6, 8, 10]
Einschränkungen
- Beschränkt auf einen einzigen Ausdruck
- Kann mit komplexer Logik weniger lesbar werden
- Nicht geeignet für mehrzeilige Funktionen
Best Practices
- Verwenden Sie Lambda für einfache, einzeilige Operationen
- Wählen Sie benannte Funktionen für komplexe Logik
- Berücksichtigen Sie die Lesbarkeit, wenn Sie Lambda-Funktionen verwenden
Bei LabEx empfehlen wir, Lambda-Funktionen als ein leistungsstarkes Werkzeug in Python zur Erstellung von präzisen, inlined-Funktionen zu verstehen.