Heim >Backend-Entwicklung >Python-Tutorial >Einführung in die Verwendung des speziellen Syntaxfilters, Zuordnens, Reduzierens und Anwendens von Pythont

Einführung in die Verwendung des speziellen Syntaxfilters, Zuordnens, Reduzierens und Anwendens von Pythont

高洛峰
高洛峰Original
2017-03-07 16:26:391617Durchsuche

(1) Lambda

Lambda ist eine sehr nützliche Syntax in Python, mit der Sie schnell eine einzeilige Minimalfunktion definieren können. Ähnlich wie Makros in der Sprache C können sie überall dort eingesetzt werden, wo eine Funktion benötigt wird.

Die grundlegende Syntax lautet wie folgt:

Funktionsname = Lambda args1,args2,...,argsn : Ausdruck

Zum Beispiel:

add = lambda x,y : x + y
print add(1,2)

(2) Filter

Die Filterfunktion entspricht einem Filter. Der Funktionsprototyp ist: filter(function , Sequenz), was bedeutet, dass jedes Element in der Sequenzsequenz nacheinander eine Funktion ausführt, wobei Funktion eine Bool-Funktion ist. Beispiel:

sequence = [1,2,3,4,5,6,7,8,9,10]
fun = lambda x : x % 2 == 0
seq = filter(fun,sequence)
print seq

Der folgende Code stellt das Herausfiltern aller geraden Zahlen nacheinander dar.

Der Filterfunktionsprototyp sieht ungefähr wie folgt aus:

def filter(fun,seq):
    filter_seq = []
    for item in seq:
        if fun(item):
            filter_seq.append(item)
    return filter_seq

(3) Karte

Die Grundform der Karte ist: Karte (Funktion, Sequenz), die die Funktionsfunktion auf die Sequenzsequenz anwendet und dann eine endgültige Ergebnissequenz zurückgibt. Zum Beispiel:

seq = [1,2,3,4,5,6]
fun = lambda x : x << 2

print map(fun,seq)

Der Funktionsquellcode von Map lautet ungefähr wie folgt:

def map(fun,seq):
    mapped_seq = []
    for item in seq:
        mapped_seq.append(fun(item))
    return mapped_seq

(4) Reduzieren

Die Form der Reduzierfunktion ist: Reduzieren (Funktion, Sequenz, InitVal), Funktion stellt eine Binärfunktion dar, Sequenz repräsentiert die zu verarbeitende Sequenz und initVal stellt den Anfangswert der Verarbeitung dar. Zum Beispiel:

seq = [1,2,3,4,5,6,7,8,9,10]
fun = lambda x,y: x + y

print reduce(fun,seq,0)

bedeutet, dass jedes Element in der Sequenz seq beginnend mit dem Anfangswert 0 akkumuliert wird, sodass das Ergebnis 55 ist

Der Quellcode der

Reduzierungsfunktion lautet ungefähr wie folgt:

def reduce(fun,seq,initVal = None):
    Lseq = list(seq)
    if initVal is None:
        res = Lseq.pop(0)
    else:
        res = initVal
    for item in Lseq:
        res = fun(seq,item)
    return res

(5) gelten

Anwenden wird verwendet, um eine Funktion indirekt zu ersetzen, wie zum Beispiel:

def say(a,b):
    print a,b

apply(say,(234,&#39;Hello World!&#39;))

Für weitere Pythont-Spezialsyntaxfilter, Zuordnen, Reduzieren, Anwenden von Verwendungsmethoden, Bitte beachten Sie die entsprechenden Artikel. Folgen Sie der chinesischen PHP-Website!


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