Der gleiche Python-Anfänger, wie Sie die grundlegende Verwendung von Lambda-Ausdrücken verstehen sollten.
Neulich fragte mich mein Senior nach der Verwendung des Lambda-Ausdrucks, aber ich benutzte ihn nicht so oft und konnte nicht gut antworten, also habe ich ihn nachgeschlagen und zusammengefasst. Zu dieser Zeit habe ich auf die folgende Seite verwiesen. Tatsächlich dient dieser Artikel dazu, meine Gedanken zu organisieren. Ich denke, es ist einfacher zu verstehen, wenn Sie den verlinkten Artikel lesen.
Qiita: Python Lambda ist leicht zu verstehen
Der Lambda-Ausdruck wird verwendet, um eine anonyme Funktion zu erstellen. Immaterielle Funktionen sind, wie der Name schon sagt, unbenannte Funktionen. Erstellen wir eine Funktion, die die Summe zweier Werte mit einer normalen Funktion und einer anonymen Funktion berechnet, und vergleichen Sie die Unterschiede.
Erstens ist eine normale Funktion. Definieren Sie die Funktion mit dem Funktionsnamen als add.
#Gewöhnliche Funktion
def add(a, b):
return a + b
#Rufen Sie die Funktion über den Funktionsnamen "add" auf.
print(add(1, 2)) #==>3 wird ausgegeben
Als nächstes machen wir dasselbe mit einer anonymen Funktion. Ich habe eine anonyme Funktion definiert und dieses Funktionsobjekt einer Variablen (add_lambda) zugewiesen. ~~ Wenn Sie eine anonyme Funktion verwenden, rufen Sie das Funktionsobjekt aus der Variablen auf. ** Anonyme Funktionen werden Variablen zugewiesen, da anonyme Funktionen keinen Funktionsnamen zum Aufrufen haben. Sie können daher nur verwendet werden, wenn sie Variablen zugewiesen sind **. ~~ Dieses Mal wird die anonyme Funktion der Variablen zugewiesen und verwendet, es ist jedoch auch möglich, die anonyme Funktion ohne Verwendung der Variablen zu verwenden. (Vielen Dank für den Hinweis auf @konandoiruasa.)
#Anonyme Funktionsobjektvariable(add_lambda)Ersatz in.
add_lambda = lambda x, y: x + y
#Rufen Sie ein Funktionsobjekt aus einer Variablen auf.
print(add_lambda(1, 2)) #==>3 wird ausgegeben
Wie Sie sehen können, machen diese beiden Beispiele dasselbe. Warum beschäftigen Sie sich mit Lambda? Dies wird als nächstes besprochen.
** Unter dem Strich kann das Schreiben einfacher sein. ** **.
Nun möchte ich anhand eines konkreten Beispiels erklären, wann es leicht zu beschreiben ist.
In Python können Sie eine Funktion erstellen, die eine Funktion als Argument der Funktion erhalten kann. Betrachten Sie als Beispiel eine Funktion (return_result), die das Ergebnis der empfangenen Funktion anzeigt.
### disp_Funktion des Ergebnisses###
#Funktion als Argument(func)Argumente verwendet in und func(*args)Bekommen
# func(args)Zeigen Sie das Ergebnis von an
def return_result(func, *args):
return func(*args)
Vergleichen wir den Fall der Ausführung mit einer normalen Funktion und den Fall der Ausführung mit einer anonymen Funktion, wenn eine Funktion, die die Summe von zwei zurückgibt, als Argument für dieses return_result angegeben wird.
Schauen wir uns zunächst die normalen Funktionen an.
def add(a, b):
return a + b
print(return_result(add ,1, 2)) #==>3 wird angezeigt.
Betrachten wir nun den Fall der Verwendung einer anonymen Funktion.
print(return_result(lambda x, y: x + y, 1, 2)) #==>3 wird angezeigt.
Das Erstellen einer anonymen Funktion mit Lambda erleichtert das Schreiben, da Sie die Funktion nicht separat definieren müssen.
Auf diese Weise kann bei Verwendung einer anonymen Funktion in einer Funktion (return_result), die eine Funktion (func) und ein Argument (* args) als Argumente verwendet, die Beschreibung um den Betrag vereinfacht werden, für den die Funktionsdefinition nicht erforderlich ist. Wenn Sie jedoch eine komplexe Funktion als Funktion verwenden möchten, müssen Sie die Funktion anstelle von Lambda separat definieren.
Die Verwendung von Lambda ist wie folgt.
#Lambda-Argument a,Argument b:Verarbeitung mit den Argumenten a und b
func_lambda = lambda a, b: a + b
Weitere Details sind wie folgt. ** Dies ist ein Nachdruck eines Teils der Python-Dokumentation, der mit einem Screenshot ausgeschnitten wurde. .. ** **.
Ich sehe Artikel, die häufig in den Karten- und Filterfunktionen verwendet werden.
Lambda hat nicht viel Wert für die Verwendung in komplizierten Funktionen oder normalen Funktionen, ist jedoch praktisch, da es für Funktionen, die Funktionen wie Funktionen höherer Ordnung als Argumente erhalten, leicht zu beschreiben ist. .. .. Das ist meine eigene Schlussfolgerung.
sum_result = (lambda x, y: x+y)(1, 2) # sum_3 ist dem Ergebnis zugeordnet.
Der Grund, warum Sie so schreiben können, ist laut Lambda-Dokument:
Der Ausdruck Lambda-Parameter: Ausdruck wird zum Funktionsobjekt.
Es gibt. Ja, der Lambda-Ausdruck ist ein Funktionsobjekt !! Der Teil (Lambda x, y: x + y)
ist also das Funktionsobjekt.
Daher kann es als Funktion in Form eines Funktionsobjekts (tatsächliches Argument) verwendet werden !! Mit dieser Methode können Sie anonyme Funktionen einmal verwenden, ohne Variablen zu verwenden !! Ich wusste es nicht.
Python-Dokumentation Qiita: Python Lambda ist leicht zu verstehen