single
Lambda-Funktionen
Swipe um das Menü anzuzeigen
Lambda-Funktionen sind anonyme Funktionen, das heißt, sie haben keinen Namen. Sie werden mit dem Schlüsselwort lambda erstellt und häufig verwendet, um kurze Funktionen direkt an Ort und Stelle zu definieren.
Die grundlegende Syntax einer Lambda-Funktion ist wie folgt:
lambda arguments: expression
lambda: das Schlüsselwort, das den Beginn einer Lambda-Funktionsdefinition kennzeichnet;arguments: die Liste der Argumente, die die Funktion entgegennimmt;expression: der Ausdruck, der ausgeführt wird, wenn die Funktion aufgerufen wird. Das Ergebnis des Ausdrucks wird als Funktionswert zurückgegeben.
Das Hauptmerkmal von Lambda-Funktionen ist ihre kompakte Syntax. Sie sind praktisch, wenn eine einfache Funktion benötigt wird, ohne viel Code zu schreiben.
Einzelne und mehrere Argumente
Eine Lambda-Funktion kann ein oder mehrere Argumente entgegennehmen:
1234567# Single argument square = lambda x: x**2 print(square(5)) # 25 # Multiple arguments add = lambda x, y: x + y print(add(3, 5)) # 8
Bedingte Logik in Lambda-Funktionen
Eine ternäre Ausdrucksweise kann verwendet werden, um bedingte Logik innerhalb einer Lambda-Funktion hinzuzufügen:
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
Verwendung von Lambda mit eingebauten Funktionen
Ein häufiger Anwendungsfall ist die Kombination von Lambda-Funktionen mit eingebauten Funktionen wie map() und filter():
123456789prices = [100, 200, 300] # Apply 10% discount to each price discounted = list(map(lambda price: price * 0.9, prices)) print(discounted) # [90.0, 180.0, 270.0] # Keep only prices above 150 expensive = list(filter(lambda price: price > 150, prices)) print(expensive) # [200, 300]
max() kann auch innerhalb eines Lambdas verwendet werden, um Sonderfälle direkt im Ausdruck zu behandeln:
123safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
Die Funktion max(a, b) vergleicht zwei Zahlen und gibt die größere zurück. Wenn eine Variable mit 0 kombiniert wird – wie in max(x, 0) – dient dies als Sicherheitsnetz gegen negative Zahlen:
-
Ist x positiv (z. B. 100), gibt
max(100, 0)den Wert 100 zurück, da 100 größer als 0 ist. -
Ist x negativ (z. B. -50), gibt
max(-50, 0)den Wert 0 zurück, da 0 größer als -50 ist.
Dies macht eine komplexe if-else-Anweisung überflüssig, wenn jeder negative oder ungültige Wert sofort zu 0 werden soll.
Lambda-Funktionen eignen sich am besten für kurze, einzeilige Logik. Wenn eine Funktion mehrere Zeilen oder komplexe Logik benötigt, ist eine reguläre def-Funktion die bessere Wahl.
Wischen, um mit dem Codieren zu beginnen
Es gibt eine Liste von Preisen (prices), und ein Lambda-Ausdruck soll implementiert werden, der einen Preis als Parameter übernimmt und 13 % Steuer davon abzieht.
- Definition eines Lambda-Ausdrucks mit dem Schlüsselwort
lambda. - Der Lambda-Ausdruck soll einen Parameter (
price) annehmen. - Ist der
pricenegativ, gilt er als ungültig und es soll direkt innerhalb des Lambda-Ausdrucks mit der Funktionmax()0 zurückgegeben werden. - Der Lambda-Ausdruck soll zuerst den Preis prüfen und dann 13 % abziehen vom gültigen Betrag.
- Mit einer List Comprehension soll
apply_taxauf jedes Element inpricesangewendet werden.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen