Suche…


Einführung

Die Funktionsprogrammierung zerlegt ein Problem in eine Reihe von Funktionen. Im Idealfall nehmen Funktionen nur Eingaben auf und erzeugen Ausgaben, und sie haben keinen internen Status, der die Ausgabe für eine bestimmte Eingabe beeinflusst.

Lambda-Funktion

Eine anonyme Inline-Funktion, die mit Lambda definiert ist. Die Parameter des Lambda sind links vom Doppelpunkt definiert. Der Funktionskörper wird rechts vom Doppelpunkt definiert. Das Ergebnis der Ausführung des Funktionskörpers wird (implizit) zurückgegeben.

s=lambda x:x*x
s(2)    =>4

Kartenfunktion

Map übernimmt eine Funktion und eine Sammlung von Elementen. Es erstellt eine neue leere Sammlung, führt die Funktion für jedes Element in der ursprünglichen Sammlung aus und fügt jeden Rückgabewert in die neue Sammlung ein. Es gibt die neue Sammlung zurück.

Dies ist eine einfache Map, die eine Namensliste verwendet und eine Liste der Längen dieser Namen zurückgibt:

name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths)    =>[4, 4, 3]

Funktion reduzieren

Reduzieren nimmt eine Funktion und eine Sammlung von Elementen. Es gibt einen Wert zurück, der durch Kombinieren der Elemente erstellt wird.

Dies ist eine einfache Reduzierung. Sie gibt die Summe aller Elemente in der Sammlung zurück.

total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total)    =>10

Filterfunktion

Der Filter übernimmt eine Funktion und eine Sammlung. Es gibt eine Auflistung aller Elemente zurück, für die die Funktion True zurückgegeben hat.

arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)]    # outputs[5,6]


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow