Nous partagerons en une seule fois6Des fonctions intégrées qui peuvent être appelées immortelles.Dans beaucoup de livres informatiques,Ils agissent aussi souvent commeFonction d'ordre supérieurPour présenter.Et moi - même dans mon travail quotidien,Ils sont souvent utilisés pour accélérer le Code,Plus facile à comprendre.
Lambda
Fonction pour créer une fonction anonyme,C'est - à - dire une fonction sans nom.C'est juste une expression,Rapport de volume de la fonctiondefC'est beaucoup plus simple..Quand nous avons besoin de créer une fonction pour effectuer une seule opération et que nous pouvons écrire en une seule ligne,Vous pouvez utiliser des fonctions anonymes.
lambda [arg1 [,arg2,.....argn]]:expression
lambdaLe corps de est une expression,Au lieu d'un bloc de code.Seulement danslambdaEncapsulation d'une logique finie dans une expression.Par exemple:
lambda x: x+2
Si on imagine aussidefLes fonctions définies sont appelées à tout moment,Vous pouvezlambdaFonctions
Assigner à un tel objet de fonction.
add2 = lambda x: x+2
add2(10)
Résultats obtenus:
UtilisationLambda
Fonctions, Vous pouvez simplifier le Code beaucoup , Un autre exemple concret .
Comme le montre la figure ci - dessus,Liste des résultatsnewlist
Est d'utiliserlambda Fonction générée avec une ligne de code .
map()
La fonction mappe une fonction à tous les éléments d'une liste d'entrées .
map(function,iterable)
Par exemple, nous avons d'abord créé une fonction pour renvoyer un mot d'entrée majuscule , Ensuite, cette fonction devrait être dans la liste colors
Tous les éléments de.
def makeupper(word):
return word.upper()
colors=['red','yellow','green','black']
colors_uppercase=list(map(makeupper,colors))
colors_uppercase
Résultats obtenus:
En outre,On peut encore utiliserFonction anonymelambda
Pour correspondremapFonctions, Cela pourrait être plus simple .
colors=['red','yellow','green','black']
colors_uppercase=list(map(lambda x: x.upper(),colors))
colors_uppercase
Si on n'avait pas àMapLes mots de la fonction,Il faut l'utiliser.forCycle.
Comme le montre la figure ci - dessus,Dans la pratiqueMap La fonction sera plus for La méthode de rotation des éléments de liste séquentielle est rapide 1.5X.
Quand vous devez faire quelques calculs sur une liste et retourner les résultats,reduce()
C'est une fonction très utile.Par exemple,, Quand il faut calculer le produit de tous les éléments d'une liste entière ,Prêt à l'emploireduceMise en œuvre de la fonction.[1]
Elle est liée àmap La plus grande différence entre les fonctions est ,reduce()
Fonction de cartographie dans (function)Recevoir deux paramètres,EtmapRecevoir un paramètre.
reduce(function, iterable[, initializer])
Ensuite, nous allons utiliser des exemples pour démontrer reduce()
Procédure d'exécution du Code pour .
from functools import reduce
def add(x, y) : # Ajouter deux nombres
return x + y
numbers = [1,2,3,4,5]
sum1 = reduce(add, numbers) # Liste de calcul et
Obtenir des résultatssum1 = 15
, Le processus d'exécution du Code est indiqué dans le diagramme de mouvement suivant .
En combinaison avec l'image ci - dessus, nous pouvons voir ,reduce Ajouter une fonction add()
Fonctionne sur une liste [1,2,3,4,5]Allez., La fonction de cartographie a reçu deux arguments ,reduce()
Continuez à additionner les résultats avec l'élément suivant de la liste .
En outre,Nous pouvons également utiliserFonction anonymelambda
Pour correspondrereduceFonctions, Cela pourrait être plus simple .
from functools import reduce
numbers = [1,2,3,4,5]
sum2 = reduce(lambda x, y: x+y, numbers)
Obtenir des résultatssum2= 15
, En accord avec les résultats précédents .
Attention requise:Python3.xC'est parti.
reduce()
A été déplacé versfunctoolsDans le module[2],Si on doit utiliser,J'en ai besoin.from functools import reduce
Importer.
enumerate()
Fonction utilisée pour mettre un objet de données ergodique(Comme la Liste、Tuple ou chaîne)Combiner en une séquence d'index,Liste des données et des indices de données,Généralement utiliséforEn boucle.Sa syntaxe est la suivante::
enumerate(iterable, start=0)
Ses deux paramètres,L'un est une séquence.、Itérateur ou autre objet supportant l'itération; L'autre est la position de départ de l'indice , Par défaut à partir de 0C'est parti., Vous pouvez également personnaliser le numéro de départ du compteur .
colors = ['red', 'yellow', 'green', 'black']
result = enumerate(colors)
Si on avait un magasin colorsListe des couleurs pour, Après l'opération, on obtient un enumerate(Enumeration) Objet.Il peut être directementforUtilisation en boucle, Peut également être converti en liste ,L'utilisation spécifique est la suivante.
for count, element in result:
print(f" Numéro d'itération :{count},Éléments correspondants:{element}")
zip()
La fonction est utilisée pour prendre un objet itérable comme paramètre,Emballer les éléments correspondants de l'objet en tuples,Puis retournez à la liste de ces tuples[3].
Nous utilisons encore deux listes comme exemples :
colors = ['red', 'yellow', 'green', 'black']
fruits = ['apple', 'pineapple', 'grapes', 'cherry']
for item in zip(colors,fruits):
print(item)
Résultats obtenus:
Quand on utilisezip()
Fonction,Si le nombre d'éléments dans chaque Itérateur est incohérent,La longueur de la liste de retour est la même que celle de l'objet le plus court.
prices =[100,50,120]
for item in zip(colors,fruits,prices):
print(item)
filter()
Fonction utilisée pour filtrer les séquences,Filtrer les éléments non admissibles,Retour à une nouvelle liste d'éléments admissibles,Sa syntaxe est la suivante[4].
filter(function, iterable)
Par exemple, Nous pouvons d'abord créer une fonction pour déterminer si les données sont impaires ,Ensuite, utilisezfilter()
La fonction filtre tous les nombres impairs de la liste :
def is_odd(n):
return n % 2 == 1
old_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_list = filter(is_odd, old_list)
print(newlist)
Résultats obtenus:
Ce que j'ai partagé aujourd'hui6Fonctions intégrées,En service Python Très pratique pour l'analyse de données ou d'autres tâches complexes d'automatisation .
[1]
Les livres: Presse de l'industrie mécanique-《PythonBase de programmation》
[2]Tutoriel débutant: https://www.runoob.com/python/python-func-reduce.html
[3]Tutoriel débutant: https://www.runoob.com/python/python-func-zip.html
[4]towardsdatascience: https://towardsdatascience.com/