Maison >développement back-end >Tutoriel Python >Comment les fonctions « filter », « map » et « reduce » de Python ont-elles changé dans Python 3 ?

Comment les fonctions « filter », « map » et « reduce » de Python ont-elles changé dans Python 3 ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-27 14:41:17435parcourir

How Have Python's `filter`, `map`, and `reduce` Functions Changed in 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!

Déclaration:
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