Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Lambda-Funktionen | Rekursion und Lambda-Funktionen
Python-Funktionen-Tutorial
Abschnitt 5. Kapitel 4
single

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:

123
is_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():

123456789
prices = [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:

123
safe_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
Note
Hinweis

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.

Aufgabe

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.

  1. Definition eines Lambda-Ausdrucks mit dem Schlüsselwort lambda.
  2. Der Lambda-Ausdruck soll einen Parameter (price) annehmen.
  3. Ist der price negativ, gilt er als ungültig und es soll direkt innerhalb des Lambda-Ausdrucks mit der Funktion max() 0 zurückgegeben werden.
  4. Der Lambda-Ausdruck soll zuerst den Preis prüfen und dann 13 % abziehen vom gültigen Betrag.
  5. Mit einer List Comprehension soll apply_tax auf jedes Element in prices angewendet werden.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 4
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt