Il existe trois fonctions de base en Python, à savoir filter(), map() et réduire(). Elles nous fournissent respectivement des fonctions de filtrage, de mappage et d'agrégation. Dans la section précédente, nous avons simplement utilisé la fonction filter() combinée à une fonction anonyme. Ci-dessous, nous présenterons son utilisation en détail.
Lors du filtrage et du filtrage des données, nous utilisons généralement la fonction filter() pour nous aider à résoudre rapidement le problème. Son format de syntaxe est :
filtre (fonction, objet itérable)
Dans la fonction de filtrage, placez notre méthode de filtrage ou de filtrage, c'est-à-dire le nom de la fonction , au premier plan et stockez l'objet itérable à l'arrière. Regardons l'exemple suivant :
deftest(x):ifx%2==0:returnxmy_list=[1,2,3,4,5,6]print(filter(test,my_list))#Juste besoin de quelques noms de fonctions, aucun paramètre n'est nécessaire
Résultat de sortie :
<objet filtre0x034C2DD8>
Concernant cet exemple, nous définissons d'abord une fonction test(), qui renvoie sa valeur si x est un nombre pair, puis utilisons la fonction test() pour filtrer la liste my_list via la fonction filter(), mais le résultat de sortie est < filter à 0x034C2DD8> , nous devons ici noter que la valeur de retour de la fonction filter() est un objet itérable, et nous devons accéder aux valeurs de manière itérative, ou utiliser la fonction list() pour forcer la conversion de type.
deftest(x):ifx%2==0:returnxmy_list=[1,2,3,4,5,6]print(filter(test,my_list))foriinfilter(test,my_list):print('après itération Données : ',i)print('Utiliser la méthode list() :',list(filter(test,my_list)))
Le résultat est :
Données dans l'itération : 2 Données dans l'itération : 4 Données dans l'itération : 6 Utilisation de la méthode list() : [2, 4, 6]
Nous avons déjà utilisé la fonction map() à plusieurs reprises. Par exemple, lorsque nous saisissons plusieurs valeurs, nous utiliserons la fonction map() lorsque nous devons saisir quatre valeurs :
a,b,c,d=map(int,input().split())print(a,b,c,d)
Le format syntaxique de la fonction map() est :
map(fonction, objet itérable)
Lorsque nous utilisons la fonction map(), nous l'utilisons principalement pour le traitement des données. Les données de l'objet itérable sont stockées après avoir été traitées par la fonction. Nous continuons à utiliser la fonction list() pour le stockage.
Regardons d'abord l'exemple ci-dessus de saisie de quatre valeurs. Int est une fonction, et la valeur saisie par input().splite est un objet itérable, qui est stocké dans l'objet map après avoir été traité par la fonction int.
Nous pouvons utiliser la fonction map() pour traiter toutes les données d'une séquence via une fonction, voir l'exemple suivant :
Nous stockons les lettres dans une liste, et si une lettre minuscule existe, nous la mettons en majuscule.
Le code est le suivant :
deftest(x):ifx.islower():returnx.upper()else:returnxmy_list=['d','o','t','C','p','P']print(list(map (test,ma_liste)))
Le résultat est :
['D','O','T','C','P','P']
La fonction test() jugera d'abord x S'il s'agit d'une lettre minuscule, elle renverra sa lettre majuscule. Si ce n'est pas une lettre minuscule, elle renverra sa valeur.
La fonction réduire() est utilisée pour agréger des objets itérables via des méthodes fonctionnelles.
Le format de syntaxe est :
réduire (fonction, objet itérable [, valeur initiale])
Par exemple, nous savons qu'une liste est [1,2,3,4] et nous devons trouver la somme de tous les éléments de la liste multipliés en séquence. Nous pouvons utiliser la fonction réduire().
La fonction fromfunctoolsimportreduce#reduce est définie dans le module functools et doit être introduite deftest(x,y):returnx*ymy_list=[1,2,3,4]print(reduce(test,my_list))
Le résultat est :
La première ligne de code présente cette méthode, et le module sera expliqué plus tard. La fonction test() renvoie deux données à multiplier, puis la liste my_list est traitée via la fonction réduire().
Le processus de traitement est le suivant :
Exécutez d'abord la première étape, puis obtenez un résultat et multipliez-le par le suivant, puis passez au dernier chiffre.
Les deux premières de ces trois fonctions sont couramment utilisées. La maîtrise de ces trois fonctions peut nous aider à résoudre une série de problèmes complexes. Dans la section suivante, nous découvrirons les fonctions récursives.