Maison >développement back-end >Tutoriel Python >Comment les fonctions « filter », « map » et « reduce » de Python ont-elles changé dans Python 3 ?
Comprendre l'évolution des outils fonctionnels en Python : filtrer, mapper et réduire
Dans Python 3, le comportement de filtre, mapper, et réduire les fonctions a subi des changements importants par rapport à leurs homologues de Python 2. Cela peut prêter à confusion pour les utilisateurs habitués à la syntaxe précédente et comportement.
Modifications apportées au filtre et à la carte
Dans Python 3, le filtre et la carte renvoient des itérateurs plutôt que des listes. Cela est le résultat du passage de la production de structures de données concrètes à la fourniture de vues plus efficaces et économes en mémoire. Si vous avez besoin d'obtenir une liste comme résultat, vous pouvez utiliser la fonction list() pour convertir l'itérateur, par exemple. liste (filtre (f, plage (2, 25))). Une meilleure solution, cependant, consiste à envisager des compréhensions de liste ou à retravailler le code pour éliminer le besoin d'une liste.
Suppression de réduire
Python 3 a supprimé le construit -en fonction de réduction. Au lieu de cela, les utilisateurs doivent utiliser la fonction functools.reduce si nécessaire. Cependant, il est important de noter que dans la plupart des cas, une boucle for explicite fournit une alternative plus lisible et plus efficace.
Exemples de modifications de code
Pour adapter le Python fourni 2 vers Python 3, les modifications suivantes sont nécessaire :
# Python 2 filter(f, range(2, 25)) map(cube, range(1, 11)) reduce(add, range(1, 11)) # Python 3 list(filter(f, range(2, 25))) list(map(cube, range(1, 11))) functools.reduce(add, range(1, 11))
Conclusion
En comprenant ces changements dans Python 3, les développeurs peuvent éviter les surprises et écrire du code qui utilise efficacement les outils fonctionnels disponibles dans le langage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!