Comment les filtres, mappage et réduction de Python 3 ont-ils changé et comment puis-je adapter mon code ?

Linda Hamilton
Libérer: 2024-11-27 16:35:12
original
750 Les gens l'ont consulté

How Have Python 3's `filter`, `map`, and `reduce` Changed, and How Can I Adapt My Code?

Python 3 : s'adapter à l'évolution du filtre, de la cartographie et de la réduction

Dans Python 2, les fonctions filtrer, cartographier et réduire fournissent des moyens concis de manipuler les données collections. Cependant, ces fonctions ont subi des changements importants dans Python 3.

filtre et carte : itérateurs au lieu de listes

Au lieu de renvoyer des listes, le filtre et la carte renvoient désormais des itérateurs. Ce changement s'aligne sur la philosophie de conception de Python 3 visant à promouvoir la paresse et l'efficacité. Les itérateurs conservent la mémoire et améliorent les performances en produisant les éléments au fur et à mesure de leurs besoins, plutôt que de créer la liste entière à l'avance.

Pour obtenir une liste équivalente au résultat d'un filtre ou d'une carte, vous pouvez utiliser la fonction list() comme suit :

filtered_list = list(filter(f, range(2, 25)))
mapped_list = list(map(cube, range(1, 11)))
Copier après la connexion

reduce : obsolète et remplacé

Python 3 a supprimé la fonction de réduction. Il a été relégué au module functools sous le nom de functools.reduce(). Ce changement a été motivé par une idée fausse entourant l'utilisation de la réduction. Dans la plupart des cas, une boucle for explicite est considérée comme plus lisible et efficace.

Notez que functools.reduce() sert le même objectif que réduire dans Python 2. Cependant, si votre code dépend fortement de réduire, revisitez-le et il est recommandé d'explorer des approches alternatives (telles que des boucles for explicites ou des fonctions d'ordre supérieur).

En adoptant ces changements, vous pouvez adapter votre code Python à la dernière version et profiter de ses avantages. améliorations des performances et de la lisibilité.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal