[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken

Artikel Zweck

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

Was ist ein Lambda-Ausdruck?

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.

Warum brauchen Sie eine Lambda-Funktion?

** 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.

Verwendung des Lambda-Ausdrucks

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. .. ** **. スクリーンショット 2020-01-06 13.49.51.png

Situationen, die wahrscheinlich häufig verwendet werden

Ich sehe Artikel, die häufig in den Karten- und Filterfunktionen verwendet werden.

Zusammenfassung

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.

Ergänzung (wie erwähnt hinzugefügt): Verwendung der anonymen Funktion ohne Verwendung von Variablen

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.

Referenz

Python-Dokumentation Qiita: Python Lambda ist leicht zu verstehen

Recommended Posts

[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
Grundlegende Verwendung von Python-F-String
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
[Einführung in Python] Grundlegende Verwendung der Bibliothek scipy, die Sie unbedingt kennen müssen
Einführung von Python
[Road to Intermediate Python] Verwenden Sie Lambda-Ausdrücke
[Einführung in Data Scientist] Grundlagen von Python ♬
Grundlegende Grammatik des Python3-Systems (Verwendung von Funktionen, Schließung, Lambda-Funktion)
[Einführung in die Udemy Python3 + -Anwendung] 26. Kopie des Wörterbuchs
[Einführung in die Udemy Python3 + -Anwendung] 19. Kopie der Liste
Grundlegende Verwendung von Flask-Classy
Verwendung von Python-Einheimischen ()
Einführung in die Python-Sprache
Grundlegende Verwendung von SQL Alchemy
Einführung in OpenCV (Python) - (2)
Python-Grundkurs (Einführung)
Grundkenntnisse in Python
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Einführung in Udemy Python3 + Application] 53. Wörterbuch der Schlüsselwortargumente
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Einführung in Udemy Python3 + Application] 52. Tapple von Positionsargumenten
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Python] Richtige Verwendung der Karte
Super grundlegende Verwendung von Pytest
Einführung in Python Django (2) Win
[Einführung in cx_Oracle] Übersicht über cx_Oracle
Grundlegende Verwendung der PySimple-Benutzeroberfläche
Einführung in Aktivitäten mit Python
Einführung in die serielle Kommunikation [Python]
[Einführung in Python] <Liste> [Bearbeiten: 22.02.2020]
Einführung in Python (Python-Version APG4b)
Zusammenfassung der grundlegenden Verwendung von Pandas
Beispiel für die Verwendung von Python Pickle
Eine Einführung in die Python-Programmierung
[Python] Richtige Verwendung von Join
Wie benutzt man Python Lambda?
Einführung in Python For, While
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und Klassen
[Raspi4; Einführung in den Sound] Stabile Aufzeichnung der Toneingabe mit Python ♪
[2020/06 neueste Version] Grundlegende Verwendung von Poesie, einem Abhängigkeitsmanagement-Tool für Python
[Einführung in die Udemy Python3 + -Anwendung] 31. Kommentar
Einführung in Ansible Teil 2 'Grundlegende Grammatik'
Einführung in die Python Numerical Calculation Library NumPy
Trainieren! !! Einführung in Python Type (Type Hints)
[Einführung in Python3 Tag 1] Programmierung und Python
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
[Einführung in Python3 Tag 13] Kapitel 7 Zeichenfolgen (7.1-7.1.1.1)
[Einführung in Python] So analysieren Sie JSON
[Lambda] [Python] Von Lambda auf Twitter posten!
[Einführung in die Udemy Python3 + -Anwendung] 56. Abschluss
Einführung in Protobuf-c (C-Sprache ⇔ Python)
[Einführung in die Udemy Python3 + -Anwendung] 59. Generator
[Einführung in Python] Verwenden wir Pandas
Grundlegende Grammatik des Python3-Systems (Wörterbuch)
Einführung des Python-Zeichenpakets Pygal
[Einführung in die Udemy Python3 + -Anwendung] Zusammenfassung
Einführung in die Bildanalyse opencv python