Maison >développement back-end >Tutoriel Python >Comment les filtres, mappage et réduction de Python 3 ont-ils changé et comment puis-je adapter mon code ?
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.
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)))
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!