Über Lambda-Funktionen
Lambda-Funktionen in Python sind unbenannte und anonyme Funktionen, die verwendet werden können, um Ausdrücke zu erstellen, die einen Wert basierend auf den im Ausdruck selbst implementierten Berechnungen zurückgeben. Die Logik in diesen Lambda-Funktionen kann kurz und bündig geschrieben werden, normalerweise etwas, das leicht in eine Zeile passt. Manchmal können sie schwer zu lesen sein, besonders wenn die Leute nicht gut mit Lambda-Funktionen vertraut sind. Sie haben jedoch den Vorteil, dass sie die Dinge innerhalb von Codeblöcken zusammenhalten und helfen, den Kontext besser zu verstehen.
Syntax von Lambda-Funktionen
Die Syntax einer Lambda-Funktion in Python sieht so aus:
multiplizieren = Lambda x, y: x * yDer erste Teil des Lambda-Ausdrucks direkt vor dem Doppelpunkt (:) nimmt Parameter als Argumente an as. Der zweite Teil nach dem Doppelpunkt muss ein Rückgabewert sein. Dieser Rückgabewert kann auch ein Ausdruck mit Logik sein. Tatsächlich werden Lambda-Funktionen fast immer verwendet, um eine Logik für die bereitgestellten Argumente zu implementieren und dann das Endergebnis zurückzugeben.
Um die oben genannte Lambda-Funktion zu testen, können Sie die folgende Anweisung verwenden:
drucken (multiplizieren (3, 4))Sie sollten die folgende Ausgabe erhalten:
12Dieselbe Lambda-Funktion würde sonst wie folgt geschrieben:
def multiplizieren (x, y):zurück x * y
drucken (multiplizieren (3, 4))
Beide Codebeispiele liefern die gleiche Ausgabe. Einige weitere Beispiele für Lambda-Funktionen werden unten erklärt.
Übergeben Sie Lambda-Funktionen als Argumente
Sie können Lambda-Funktionen verwenden, um Berechnungen durchzuführen und den Rückgabewert als Argumente für andere Funktionen bereitzustellen. Die Sort-Methode in Python verwendet ein „Schlüssel“-Argument, mit dem Sie eine aufrufbare Funktion angeben können, die ein einzelnes Argument für Sortierzwecke verwendet. Anstatt zuerst eine separate Funktion zu definieren, die einen Schlüssel zurückgibt, und dann die Referenz der Funktion auf das Argument bereitzustellen, können Sie einfach eine Lambda-Funktion verwenden.
Früchte = [(2, 'Äpfel'), (4, 'Orangen'), (3, 'Bananen')]Früchte.sort(key=lambda-element: element[0])
drucken (Früchte)
Der obige Code erzeugt die folgende Ausgabe:
[(2, 'Äpfel'), (3, 'Bananen'), (4, 'Orangen')]Sie können Lambda in jeder solchen Methode verwenden, die eine aufrufbare Funktion als Argument verwendet (z. B. Filtermethode).
Verwenden von Lambda-Funktionen in Listenverständnissen
Sie können Lambda in Listenverständnissen verwenden und eine Liste wird ordnungsgemäß aus den vom Lambda-Ausdruck zurückgegebenen Werten erstellt.
get_square = Lambda a: a * aquadrate = [get_square(x) für x im Bereich(5)]
drucken (Quadrate)
Dies erzeugt die folgende Ausgabe:
[0, 1, 4, 9, 16]Das obige Codebeispiel kann auch wie folgt geschrieben werden, wobei „x“ als Argument an die Lambda-Funktion übergeben wird:
Quadrate = [(Lambda x: x * x)(x) für x im Bereich(5)]drucken (Quadrate)
Dieses Beispiel veranschaulicht nur die Verwendung von Lambda-Funktionen in Listenverständnissen. Sie können Quadrate ansonsten einfach mit einer minimalen Listenverständnisanweisung berechnen:
print ([x * x für x im Bereich(5)])Verwenden von Lambda-Funktionen in Python-Wörterbüchern
Das folgende Codebeispiel veranschaulicht Lambda-Funktionen, die in Schlüssel-Wert-Paaren in einem Python-Wörterbuch verwendet werden. Einmal definiert, können Sie diese Funktionen jederzeit aufrufen.
berechnen = 'Summe': Lambda a, b: a + b, 'Differenz': Lambda a, b: a - bprint (berechnen['sum'](4, 5))
drucken (berechnen['Differenz'](4, 5))
Sie sollten die folgende Ausgabe erhalten, nachdem Sie den obigen Code ausgeführt haben:
9-1
Fazit
Lambda-Funktionen bieten eine hervorragende Möglichkeit, Kurzformausdrücke zu schreiben und die Dinge ordentlich und organisiert zu halten, ohne unnötig viele benannte Funktionen zu erstellen. Die übermäßige Verwendung von Lambda-Funktionen kann jedoch das Lesen von Code erschweren, insbesondere wenn der Code von mehr als einer Person betrachtet wird. Es ist besser, lesbareren Code zu haben (auch wenn er ausführlich ist) als etwas zu haben, das bei erneuten Besuchen möglicherweise etwas schwer zu verstehen ist.