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

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

WBOY
WBOYnach vorne
2023-04-12 12:55:021353Durchsuche

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

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

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)
  • 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))

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.

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

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,
......]

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

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()

Ausgabe:

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen