Heim > Backend-Entwicklung > Python-Tutorial > Eine kurze Diskussion über die Verwendung der Lambda-Funktion in Python

Eine kurze Diskussion über die Verwendung der Lambda-Funktion in Python

WBOY
Freigeben: 2023-04-12 12:55:02
nach vorne
1450 Leute haben es durchsucht

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:

  • Was ist die Lambda-Funktion?
  • Lambda-Funktion filtert Listenelemente
  • Lambda Die Kombination aus Funktion und Map()-Methode
  • Die Kombination aus Lambda-Funktion und Apply()-Methode
  • Wann ist die Lambda-Methode nicht geeignet?

Was ist die Lambda-Funktion?

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

Ausgabe:

25
Nach dem Login kopieren
Nach dem Login kopieren

Filtern Sie die Elemente in der Liste.

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)
Nach dem Login kopieren
  • Funktion – Beurteilungsfunktion
  • iterierbar – iterierbares Objekt, Liste oder Wörterbuch

Unter Für sie haben wir eine solche Liste:

import numpy as np
yourlist = list(np.arange(2,50,3))
Nach dem Login kopieren

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
Nach dem Login kopieren

Das Endergebnis ist wie folgt :

list(filter(lambda x:x**2<100, yourlist))
Nach dem Login kopieren

Ausgabe:

[2, 5, 8]
Nach dem Login kopieren

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.

Kombinierte Verwendung mit der Funktion „map()“

Die Syntax der Funktion „map()“ ähnelt der oben genannten Funktion „filter()“, beispielsweise der folgenden anonymen Funktion:

lambda x: x**2+x**3
Nach dem Login kopieren

Wir verwenden sie mit der Methode „map()“:

list(map(lambda x: x**2+x**3, yourlist))
Nach dem Login kopieren

Ausgabe:

[12,
 150,
 576,
 1452,
 2940,
 5202,
 ......]
Nach dem Login kopieren

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))
Nach dem Login kopieren

Wir verwenden auch die Map()-Methode. Der Code lautet wie folgt:

list(map(lambda x,y: x**2+y**2, yourlist,mylist))
Nach dem Login kopieren

Ausgabe: Kombination aus

[20,
 74,
 164,
 290,
 452,
 650,
 884,
 1154,
......]
Nach dem Login kopieren

und der apply()-Methode.

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
Nach dem Login kopieren

Ausgabe:

04
17
2 10
3 13
4 16
5 19
6 22
7 25
8 28
......
dtype: int32
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren

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()
Nach dem Login kopieren

Ausgabe:

0PABLO
1PABLO
2KRISTEN
3ABDUL
4 STELLA
Name: Sales_Manager, dtype: object
Nach dem Login kopieren

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)
Nach dem Login kopieren

Ausgabe:

def squared_sum(x,y):
return x**2 + y**2

squared_sum(3,4)
Nach dem Login kopieren

Wir können ihn vereinfachen zu:

25
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe:

import math
mylist = [10, 25, 40, 49, 65, 81]
sqrt_list = list(map(lambda x: math.sqrt(x), mylist))
sqrt_list
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage