Python Lambdas
- 3709
- 455
- Henry Liebold
Einführung
Sie haben sowohl mit Funktionen als auch mit Methoden gearbeitet, aber es gibt eine andere Art von Funktion, die anonyme Funktion. Anonyme Funktionen sind nur Funktionen ohne Namen, und in Python werden sie mit dem Lambda -Operator behandelt.
Mit anonymen Funktionen können Sie das Verhalten einer Funktion verwenden, ohne eine Funktion erstellen zu müssen. Dies ist besonders gut, wenn Sie nur ein- oder zweimal eine Funktion verwenden müssen. Es mag nach einem ungewöhnlichen Ereignis klingen, aber es geschieht ziemlich häufig, wenn eine Funktion oder Methode eine Funktion als Parameter nimmt.
Lambdas
Der Lambda -Betreiber hat einige grundlegende Teile. Es besteht aus Lambda
, eine Liste von Parametern und eine Operation. Die Operation ist mit einem Dickdarm von den anderen beiden getrennt. Schauen Sie sich dieses Beispiel an.
foo = lambda a = 2, b = 1: a / b print (foo) drucken (foo (16, 4))
Wenn Sie Lambdas in einer eigenständigen Eigenschaft verwenden, können Sie sie gleich einer Variablen festlegen. In dieser Form sind sie nicht so vielseitig, aber sie können trotzdem eine Rolle bei der Erstellung von Funktionen im laufenden Betrieb spielen.
Lambdas finden ihre Verwendung wirklich darin, an andere Funktionen übergeben zu werden. Sehen Sie, wie es im Beispiel unten funktioniert.
Def do_Something (Funktion, list_a, list_b): für x in list_a: für y in list_b: function (x, y) do_ething (lambda x, y: print (x*y), [1, 3, 5], [2 , 4, 6])
Natürlich ist dieses Beispiel nicht so praktisch. Es zeigt jedoch den Punkt. Sie können eine Lambda innerhalb eines Funktionsaufrufs erstellen, um sie als Argument an eine andere Funktion zu übergeben.
Karte
Der Karte()
Funktion ist interessant. Es ermöglicht Ihnen, gleichzeitig über eine oder mehrere Listen zu iterieren und an eine Funktion weiterzugeben. Es ist sehr einfach, dass diese Funktion ein Lambda -Ausdruck ist.
Dieses Beispiel kann helfen, zu klären.
Print (Liste (Karte (Lambda x, y: x * y, [1, 2, 3, 4, 5], [2, 4, 6, 8, 10])))
Das sieht aus wie ein Chaos, also ist es am besten, es aufzubrechen. Der Hauptanteil beginnt mit Karte
. Es dauert mindestens zwei Argumente, eine Funktion und eine Liste. Es kann jedoch mehrere Listen dauern, und diesmal gibt es zwei. Es erfordert auch einen Lambda -Ausdruck, der zwei Argumente akzeptiert und sie miteinander verhandelt.
Die Kartenfunktion läuft diese Listen durch. Es legt jedes Element in der ersten Liste im ersten Argument der Funktion und jedes Element in der zweiten Liste im zweiten Funktionsargument fest. Es wird jedes Mal die Funktion ausgeführt. Der Karte()
Funktion gibt ein Kartenobjekt zurück.
Dieses Kartenobjekt muss in eine verwendbarere Form konvertiert werden. Der Liste()
Die Funktion verwandelt das Objekt in eine reguläre Liste. Dann, drucken()
druckt diese Liste aus.
Schauen Sie sich einen anderen an.
Print (Liste (Karte (Lambda x: x*2, [1, 2, 3, 4, 5]))))
Das einfachere Beispiel kann einfacher zu folgen sein.
Filter
Der Filter()
Funktion ist eine andere Funktion ähnlich wie Karte()
. Es dauert eine Funktion und eine Liste als Argumente und iteriert über die Liste, wobei die Elemente durch die Funktion ausgeführt werden.
Anstatt nur eine Funktion auszuführen, Filter()
Verwendet die Funktion als Testbedingung für die Elemente in der Liste. Das Objekt, das es erzeugt.”
Print (Liste (Filter (Lambda x: x> 5, [2, 4, 6, 8])))
Die resultierende Liste enthielt nur 6 und 8.” Filter()
, In Verbindung mit einem Lambda -Ausdruck ist eine effiziente Möglichkeit, Listen durch eine Bedingung zu sortieren und zu testen.
Gedanken schließen
Lambdas sind nicht das beliebteste Thema in Python. Viele Entwickler mögen sie nicht einmal. Sogar Pythons Schöpfer ist kein Fan.
Wenn Sie sie mögen, großartig. Wenn nicht, mach dir keine Sorgen. Es gibt Alternativen, die in späteren Leitfäden diskutiert werden.
Im Moment ist es einfach wichtig, sich der Lambdas bewusst zu sein und wie sie funktionieren. Sie werden sie von Zeit zu Zeit begegnen und sie können die einfachste Lösung sein.
Übungen
- Erstellen Sie einen Lambda -Ausdruck, der zwei Zahlen multipliziert und gleich einer Variablen festlegt.
- Verwenden Sie diese Variable, um die Lambda aufzurufen und zwei Zahlen zu übergeben.
- Schreiben Sie eine Funktion, die eine Funktion als Parameter nimmt. Nennen Sie diese Funktion mit und geben Sie es als Lambda über.
- Benutze die
Karte()
Funktion zusammen mit einem Lambda, um jedes Element in zwei Listen hinzuzufügen. - Benutze die
Filter()
Funktion zusammen mit einem Lambda, um zu testen, ob jedes Element in einer Liste ungerade ist.
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Mint 20: Besser als Ubuntu und Microsoft Windows?
- Hung Linux System? Wie man zur Befehlszeile entkommt und…
- Ubuntu 20.04 Leitfaden
- Dinge zu installieren auf Ubuntu 22.04
- Mastering -Bash -Skriptschleifen beherrschen
- Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
- So verwenden Sie ADB Android Debugg Bridge, um Ihr Android zu verwalten…
- « Perl -Skript zum Abrufen einer externen IP -Adresse
- Wie man Teerarchive mit Python erstellt und manipuliert »