Python verfügt über einige integrierte Sonderfunktionen, die sehr Python-spezifisch sind. Kann den Code prägnanter machen.
Sie können das Beispiel sehen:
1 Filter (Funktion, Sequenz):
str = ['a', 'b', 'c', 'd' ]
def fun1(s): return s if s != 'a' else None
ret = filter(fun1, str)
print ret
## ['b', 'c', 'd']
Führen Sie nacheinander die Funktion (Element) für die Elemente in der Sequenz aus und bilden Sie eine Liste/einen String/ein Tupel mit dem Ausführungsergebnis von Es werden echte Elemente (je nach Sequenztyp) zurückgegeben.
kann als Filterfunktion betrachtet werden.
2 map(function, sequence)
str = ['a', 'b','c', 'd']
def fun2(s): return s ".txt"
ret = map(fun2, str)
print ret
## ['a.txt', 'b.txt', ' c.txt', 'd.txt']
Führen Sie die Funktion (Element) nacheinander für die Elemente in der Sequenz aus und sehen Sie sich die Ausführungsergebnisse in einer zurückzugebenden Liste an:
Auch zuordnen unterstützt mehrere Sequenzen. Dies erfordert, dass die Funktion auch eine entsprechende Anzahl von Parametereingaben unterstützt:
def add(x, y): return x y
print map(add, range(10), Bereich(10))
##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
3 Reduce(Funktion, Sequenz, Startwert): def add1(x,y): return x y
print Reduce(add1, Range(1, 100))
Print Reduce(add1, Range(1, 100), 20)
## 4950 (Hinweis: 1 2 ... 99)
## 4970 (Hinweis: 1 2 ... 99 20)
Rufen Sie die Funktion iterativ für die Elemente in auf Sequenz, wenn es einen Startwert gibt, kann auch als Anfangswert aufgerufen werden, zum Beispiel kann sie verwendet werden, um Liste zu summieren:
4 Lambda:
g = Lambda s: s ". fsh"
print g ("haha")
print (lambda x: x * 2) (3)
## haha.fsh
## 6
Dieses Python unterstützt eine interessante Syntax, mit der Sie schnell einzeilige Minimalfunktionen definieren können, ähnlich wie Makros in der C-Sprache. Diese Funktionen werden Lambda genannt.