Maison  >  Article  >  développement back-end  >  Introduction à l'utilisation de la syntaxe spéciale de Pythont : filtrer, mapper, réduire et appliquer

Introduction à l'utilisation de la syntaxe spéciale de Pythont : filtrer, mapper, réduire et appliquer

高洛峰
高洛峰original
2017-03-07 16:26:391564parcourir

(1) lambda

lambda est une syntaxe très utile en Python, qui vous permet de définir rapidement une fonction minimale sur une seule ligne. Semblables aux macros du langage C, elles peuvent être utilisées partout où une fonction est requise.

La syntaxe de base est la suivante :

Nom de la fonction = lambda args1,args2,...,argsn : expression

Par exemple :

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

(2) filtre

La fonction filtre est équivalente à un filtre Le prototype de fonction est : filtre(fonction. , séquence), ce qui signifie que chaque élément de la séquence séquence exécute la fonction à son tour, où la fonction est une fonction booléenne. Par exemple :

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

Le code suivant représente le filtrage de tous les nombres pairs dans l'ordre.

Le prototype de la fonction de filtre est à peu près le suivant :


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

(3) carte

La forme de base de map est : map(function, séquence), qui applique la fonction fonction à la séquence séquence puis renvoie une séquence de résultat final. Par exemple :


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

print map(fun,seq)

Le code source de la fonction map est à peu près le suivant :

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

(4) réduire

La forme de la fonction réduire est : réduire(fonction, séquence, initVal), la fonction représente une fonction binaire, la séquence représente la séquence à traiter, Et initVal représente la valeur initiale du traitement. Par exemple :


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

print reduce(fun,seq,0)

signifie accumuler chaque élément de la séquence seq à partir de la valeur initiale 0, donc le résultat est 55

Le code source de la fonction

réduire est à peu près le suivant :


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) appliquer

apply est utilisé pour remplacer indirectement une fonction, telle que :


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

apply(say,(234,&#39;Hello World!&#39;))
Pour plus de filtres de syntaxe spéciale Pythont, mapper, réduire, appliquer des méthodes d'utilisation, veuillez vous référer aux articles connexes. Suivez le site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn