Python lambda (anonyme Funktion)

Python verwendetlambda, um anonyme Funktionen zu erstellen.

Die Lambda-Funktion ist eine kleine, anonyme Inline-Funktion, die beliebig viele Parameter haben kann, aber nur einen Ausdruck haben darf.

Anonyme Funktionen müssen nicht das Schlüsselwortdefverwenden, um eine vollständige Funktion zu definieren.

Lambda-Funktionen werden normalerweise verwendet, um einfache, einzeilige Funktionen zu schreiben, oft verwendet, wenn eine Funktion als Parameter übergeben werden muss, z. B. in Funktionen wie map(), filter(), reduce(), usw.

Merkmale von Lambda-Funktionen:

  • Die Lambda-Funktion ist anonym; sie hat keinen Funktionsnamen und kann nur verwendet werden, indem man sie einer Variablen zuweist oder sie als Parameter an andere Funktionen übergibt.
  • Eine Lambda-Funktion enthält normalerweise nur eine Codezeile, was sie zum Schreiben einfacher Funktionen geeignet macht.

Lambda-Syntaxformat:

lambda arguments: expression
  • lambdaist ein Python-Schlüsselwort, das zum Definieren von Lambda-Funktionen verwendet wird.
  • argumentsist die Parameterliste, die null oder mehr Parameter enthalten kann, aber vor dem Doppelpunkt (:) zuvor angegeben.
  • expressionist ein Ausdruck, der verwendet wird, um das Ergebnis der Funktion zu berechnen und zurückzugeben.

Die folgende Lambda-Funktion hat keine Parameter:

Beispiel

f = lambda: "Hallo, Welt!" print(f()) # Ausgabe: Hallo, Welt!

Das Ausgabeergebnis ist:

Hello, world!

Das folgende Beispiel verwendet lambda, um eine anonyme Funktion zu erstellen, setzt einen Funktionsparameter a, die Funktion berechnet Parameter a plus 10 und gibt das Ergebnis zurück:

Beispiel

x = lambda a : a + 10 print(x(5))

Das Ausgabeergebnis ist:

15

Eine lambda-Funktion kann auch mehrere Parameter haben, wobei die Parameter durch Kommas getrennt werden,getrennt:

Das folgende Beispiel verwendet lambda, um eine anonyme Funktion zu erstellen, die Funktionsparameter a und b werden multipliziert und das Ergebnis wird zurückgegeben:

Beispiel

x = lambda a, b : a * b print(x(5, 6))

Das Ausgabeergebnis ist:

30

Das folgende Beispiel verwendet lambda, um eine anonyme Funktion zu erstellen, die Funktionsparameter a, b und c werden addiert und das Ergebnis wird zurückgegeben:

Beispiel

x = lambda a, b, c : a + b + c print(x(5, 6, 2))

Das Ausgabeergebnis ist:

13

lambda-Funktionen werden normalerweise zusammen mit eingebauten Funktionen wie map(), filter() und reduce() verwendet, um Operationen auf Sammlungen auszuführen. Zum Beispiel:

Beispiel

numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x**2, numbers)) print(squared) # Ausgabe: [1, 4, 9, 16, 25]

Das Ausgabeergebnis ist:

[1, 4, 9, 16, 25]

Verwenden Sie eine lambda-Funktion mit filter(), um gerade Zahlen zu filtern:

Beispiel

numbers = [1, 2, 3, 4, 5, 6, 7, 8] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # Ausgabe: [2, 4, 6, 8]

Das Ausgabeergebnis ist:

[2, 4, 6, 8]

Das folgende Beispiel zeigt, wie man reduce() und einen Lambda-Ausdruck verwendet, um das kumulative Produkt einer Sequenz zu berechnen:

Beispiel

from functools import reduce numbers = [1, 2, 3, 4, 5] # Verwende reduce() und Lambda-Funktion, um das Produkt zu berechnen product = reduce(lambda x, y: x * y, numbers) print(product) # Ausgabe: 120

Das Ausgabeergebnis ist:

120

Im obigen Beispiel iteriert die Funktion reduce() über die Liste numbers und verwendet die Lambda-Funktion, um das kumulative Ergebnis kontinuierlich zu aktualisieren, und erhält schließlich1 * 2 * 3 * 4 * 5 = 120das Ergebnis von.

Weitere Erweiterungen