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

高洛峰
Libérer: 2017-03-07 16:26:39
original
1573 Les gens l'ont consulté

(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)
Copier après la connexion

(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
Copier après la connexion

<🎜. >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
Copier après la connexion

(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)
Copier après la connexion

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
Copier après la connexion

(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)
Copier après la connexion

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
Copier après la connexion

(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;))
Copier après la connexion
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 !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!