Heim  >  Artikel  >  Backend-Entwicklung  >  Filter, Lambda-Funktionsausdruck

Filter, Lambda-Funktionsausdruck

高洛峰
高洛峰Original
2016-10-20 10:01:561463Durchsuche

Filter (Funktion oder Keine, Sequenz), wobei die Sequenz eine Liste, ein Tupel oder eine Zeichenfolge sein kann. Die Funktion dieser Funktion besteht darin, alle Elemente in der Sequenz herauszufiltern, die True oder Bool (Rückgabewert) als True zurückgeben, wenn die Funktion mit dem Element selbst als Parameter aufgerufen wird, und es als Liste zurückzugeben. Der Filter kann nur akzeptieren zwei Parameter (Funktion, Sequenz), darunter die Funktion Die Funktion kann nur einen Wert zurückgeben

Beginnen wir mit einem einfachen Code:

print max(filter(lambda x: 555555 % x == 0, range(100, 999)))

Der Code bedeutet, 555555 auszugeben. Was ist der Teiler der größten dreistelligen Zahl?

Der erste Wissenspunkt dieses Codes ist zunächst die in Python integrierte Funktion filter

filter()-Funktion, die zum Filtern von Listen verwendet wird. Der einfachste Weg, es auszudrücken, besteht darin, eine Funktion zum Filtern einer Liste zu verwenden, jedes Element in der Liste an die Filterfunktion zu übergeben und das Element aus der Liste zu löschen, wenn die Filterfunktion „false“ zurückgibt.

Die Funktion filter() enthält zwei Parameter, Funktion und Liste. Das heißt, die Funktion filtert die Elemente im Listenparameter basierend darauf, ob das vom Funktionsparameter zurückgegebene Ergebnis wahr ist, und gibt schließlich eine neue Liste zurück.

Einfach ausgedrückt entspricht die Funktion filter() dem folgenden Code:

c = [b for b in a1 if b > 2]
print c

Der zweite Wissenspunkt ist lambda() Funktion

Python unterstützt diese Syntax, die es Benutzern ermöglicht, schnell einzeilige Minimalfunktionen zu definieren. Diese Funktionen, Lambdas genannt, sind von Lisp entlehnt.

def f(x):
    return x * 2
g = lambda x: x * 2
(lambda x: x * 2)(3)

Wie Sie dem Code entnehmen können, führt die Lambda-Funktion dasselbe aus wie die normale Funktion, und das Lambda hat keine Klammern um den Parameter list und wird ignoriert return-Schlüsselwort (return existiert implizit, da die gesamte Funktion nur eine Zeile hat und die Funktion keinen Namen hat, aber sie kann einer Variablen zugewiesen und aufgerufen werden)

Der letzte Codeteil zeigt, dass die Die Lambda-Funktion ist nur eine Inline-Funktion.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn