(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
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)
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)
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,'Hello World!'))