Nächstes Kapitel: Liste Verständnis
Lambda, filter, reduce und map
Lambda-Operator
Manche mögen es, die anderen hassen ihn und viele fürchten, den lambda-operator. Wir sind zuversichtlich, dass Sie es mögenes, wenn Sie mit diesem Kapitel unseres Tutorials fertig sind., Wenn nicht, können Sie alles über „Listenverständnis“ lernen, Guido van Rossums bevorzugte Art, es zu tun, weilSie mag Lambda, Map, Filter und Reduce auch nicht.
Der Lambda-Operator oder die Lambda-Funktion ist eine Möglichkeit, kleine anonyme Funktionen zu erstellen, dh Funktionen ohne Namen. Diese Funktionen sind Wegwerffunktionen, dh sie werden nur dort benötigt, wo sie erstellt wurden.Lambda-Funktionen werden hauptsächlich in Kombination mit den Funktionen filter (), map () und reduce () verwendet.Die Lambda-Funktion wurde Python aufgrund der Nachfrage von Lisp-Programmierern hinzugefügt.,
Die allgemeine Syntax einer Lambda-Funktion ist recht einfach:
lambda argument_list: expression
Die Argumentliste besteht aus einer durch Kommas getrennten Liste von Argumenten und der Expressionist ein arithmetischer Ausdruck, der diese Argumente verwendet. Sie können die Funktion einer Variablen zuweisen, um ihr einen Namen zu geben.
Das folgende Beispiel einer Lambda-Funktion gibt die Summe ihrer beiden Argumente zurück:
>>> f = lambda x, y : x + y>>> f(1,1)2
Die map () – Funktion
Der Vorteil des Lambda-Operators ist zu erkennen, wenn er in Kombination mit der map () – Funktion verwendet wird.,
map() ist eine Funktion mit zwei Argumenten:
r = map(func, seq)
Das erste argument func-ist der name einer Funktion und die zweite eine Sequenz (z.B. Liste) seq. map() wendet die Funktion func auf alle Elemente der Sequenz seq. Es gibt eine neue Liste mit den Elementen zurück, die von funcIn geändert wurdenim obigen Beispiel haben wir Lambda nicht verwendet. Mit Lambda hätten wir die Funktionen fahrenheit() und celsius () nicht definieren und benennen müssen. Sie können dies in der folgenden interaktiven Sitzung sehen:map () kann auf mehr als eine Liste angewendet werden. Die Listen müssen die gleiche Länge haben., map() wird anwendenseine Lambda-Funktion auf die Elemente der Argumentlisten, dh sie gilt zuerst für die Elemente mit dem 0. Index, dann für die Elemente mit dem 1.Index, bis der n-te Index erreicht ist:
>>> a = >>> b = >>> c = >>> map(lambda x,y:x+y, a,b)>>> map(lambda x,y,z:x+y+z, a,b,c)>>> map(lambda x,y,z:x+y-z, a,b,c)
Im obigen Beispiel können wir sehen, dass der Parameter x seine Werte aus der Liste a erhält,während y getsits Werte aus b und z aus der Liste c.
Filterung
Die Funktion filter(Funktion, Liste) bietet eine elegante Möglichkeit, alle Elemente einer Liste, für die die Funktionsfunktion True zurückgibt.
Die Funktion Filter (f,l) benötigt eine Funktion f als erstes Argument., f gibt einen booleschen Wert zurück, dh eitherTrue oder False. Diese Funktion wird auf jedes Element der Liste angewendet l. Nur wenn f True zurückgibt, wird das Element der Liste in die Ergebnisliste aufgenommen.
Liste reduzieren
Die Funktion reduce (func, seq) wendet die Funktion func () kontinuierlich auf die Sequenz seq an. Es gibt asingle Wert zurück.,
Wenn seq = Aufruf reduce(func, seq) funktioniert wie folgt:
Wir veranschaulichen diesen Prozess im folgenden Beispiel:
>>> reduce(lambda x,y: x+y, )113
das folgende Diagramm zeigt Die Zwischenschritte der Berechnung:
Beispiele für verringern()
Bestimmung der maximal von einer Liste numerischer Werte mithilfe reduzieren:
>>> f = lambda a,b: a if (a > b) else b>>> reduce(f, )102>>>
Berechnung der Summe der zahlen von 1 bis 100:
>>> reduce(lambda x, y: x+y, range(1,101))5050
Nächstes Kapitel: Liste Verständnis