Heim >Backend-Entwicklung >Python-Tutorial >Eine kurze Diskussion über die Verwendung der Lambda-Funktion in Python
Heute möchte ich eine super einfach zu verwendende integrierte Funktion in Python empfehlen, nämlich die Lambda-Methode. In diesem Tutorial erfahren Sie ungefähr:
In Python haben wir Verwenden Sie häufig das Schlüsselwort Lambda, um eine anonyme Funktion zu deklarieren. Die sogenannte anonyme Funktion ist für Laien eine Funktion ohne Namen. Das spezifische Syntaxformat lautet wie folgt:
lambda arguments : expression
Sie kann eine beliebige Anzahl von Parametern akzeptieren, jedoch nur Erlaubt einen Ausdruck, und das Ergebnis des Ausdrucks ist der Rückgabewert der Funktion. Wir können einfach ein Beispiel schreiben:
(lambda x:x**2)(5)
Ausgabe:
25
Wie filtern wir also die Elemente hinein? die Liste? Hier müssen Sie die Lambda-Funktion und die filter()-Methode sowie das Syntaxformat der filter()-Methode kombinieren:
filter(function, iterable)
Unter Für sie haben wir eine solche Liste:
import numpy as np yourlist = list(np.arange(2,50,3))
Darunter möchten wir die Elemente herausfiltern, die kleiner als 100 nach der Zweierpotenz sind. Definieren wir eine anonyme Funktion wie folgt:
lambda x:x**2<100
Das Endergebnis ist wie folgt :
list(filter(lambda x:x**2<100, yourlist))
Ausgabe:
[2, 5, 8]
Wenn Sie auf einen komplexen Berechnungsprozess stoßen, empfiehlt der Herausgeber hier, dass Sie eine Funktion selbst anpassen. Wenn es sich jedoch um einen einfachen Berechnungsprozess handelt, ist die anonyme Lambda-Funktion definitiv die beste Wahl.
Die Syntax der Funktion „map()“ ähnelt der oben genannten Funktion „filter()“, beispielsweise der folgenden anonymen Funktion:
lambda x: x**2+x**3
Wir verwenden sie mit der Methode „map()“:
list(map(lambda x: x**2+x**3, yourlist))
Ausgabe:
[12, 150, 576, 1452, 2940, 5202, ......]
Natürlich kann die Lambda-Anonymitätsfunktion mehrere Parameternummern akzeptieren. Wir können es hier beispielsweise mit zwei Listensätzen versuchen:
mylist = list(np.arange(4,52,3)) yourlist = list(np.arange(2,50,3))
Wir verwenden auch die Map()-Methode. Der Code lautet wie folgt:
list(map(lambda x,y: x**2+y**2, yourlist,mylist))
Ausgabe: Kombination aus
[20, 74, 164, 290, 452, 650, 884, 1154, ......]
apply()-Methode wird häufiger in Pandas-Datentabellen verwendet, und Lambda-Anonymität wird in die Anwendung eingeführt ()-Methodenfunktion erstellen wir eine neue Datentabelle, wie unten gezeigt:
myseries = pd.Series(mylist) myseries
Ausgabe:
04 17 2 10 3 13 4 16 5 19 6 22 7 25 8 28 ...... dtype: int32
Die Verwendung der apply()-Methode unterscheidet sich geringfügig von den beiden vorherigen Sowohl für die map()-Methode als auch für den Filter ()-Methode müssen wir das iterierbare Objekt konvertieren. Fügen Sie es ein, und apply() ist hier nicht erforderlich:
myseries.apply(lambda x: (x+5)/x**2)
und durch die apply()-Methode ist die Verarbeitung schneller als die direkte Verwendung der str.upper()-Methode! !
Szenarien, die nicht zur Verwendung geeignet sind
Welche Szenarien sind also nicht zur Verwendung geeignet? Zunächst einmal ist die Lambda-Funktion eine anonyme Funktion und eignet sich nicht für die Zuweisung an eine Variable. Beispielsweise im folgenden Fall:
0 0.562500 1 0.244898 2 0.150000 3 0.106509 4 0.082031 5 0.066482 6 0.055785 7 0.048000 ...... dtype: float64
Im Vergleich dazu ist es besser, eine Funktion für die Verarbeitung anzupassen:
df = pd.read_csv(r'Dummy_Sales_Data_v1.csv') df["Sales_Manager"] = df["Sales_Manager"].apply(lambda x: x.upper()) df["Sales_Manager"].head()
0PABLO 1PABLO 2KRISTEN 3ABDUL 4 STELLA Name: Sales_Manager, dtype: object
Wenn wir auf die folgende Situation stoßen, können wir den Code etwas vereinfachen:
squared_sum = lambda x,y: x**2 + y**2 squared_sum(3,4)
Ausgabe:
def squared_sum(x,y): return x**2 + y**2 squared_sum(3,4)
Wir können ihn vereinfachen zu:
25
Ausgabe:
import math mylist = [10, 25, 40, 49, 65, 81] sqrt_list = list(map(lambda x: math.sqrt(x), mylist)) sqrt_list
Wenn es sich um eine integrierte Funktion handelt Insbesondere Python ist ein Modul, das für Arithmetik wie Mathematik verwendet wird. Es muss nicht in die Lambda-Funktion eingefügt werden und kann direkt extrahiert und verwendet werden
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Verwendung der Lambda-Funktion in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!