Maison > développement back-end > Tutoriel Python > Comment `filter`, `map` et `reduce` ont-ils changé dans Python 3 ?

Comment `filter`, `map` et `reduce` ont-ils changé dans Python 3 ?

Susan Sarandon
Libérer: 2024-11-27 15:38:10
original
307 Les gens l'ont consulté

How Have `filter`, `map`, and `reduce` Changed in Python 3?

Python 3 : Variations dans l'implémentation du filtre, de la cartographie et de la réduction

Dans Python 2, le filtre, la cartographie et la réduction se comportent différemment de leurs homologues Python 3. Cela découle de plusieurs changements importants implémentés dans Python 3 :

Vues et itérateurs sur les listes :

  • map() et filter() renvoient désormais des itérateurs au lieu de listes. Pour obtenir une liste, convertissez-les explicitement en utilisant list().

Suppression de réduire() :

  • reduce() a été supprimé de noyau Python en faveur de la fonction functools.reduce(). Cependant, une boucle for explicite est généralement plus lisible et préférable.

Exemple d'utilisation :

Les extraits de code Python 2 peuvent être mis à jour pour Python 3 comme suit :

def f(x):
    return x % 2 != 0 and x % 3 != 0

# **Filter:** Use list() to obtain a list of filtered values
filtered_list = list(filter(f, range(2, 25)))

# **Map:** Similarly, use list() to convert the iterator to a list
cubed_list = list(map(lambda x: x ** 3, range(1, 11)))

# **Reduce:** Use functools.reduce() or an explicit for loop
from functools import reduce
add_result = reduce(lambda x, y: x + y, range(1, 11))

print(filtered_list)  # Output: [5, 7, 11, 13, 17, 19, 23]
print(cubed_list)   # Output: [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
print(add_result)   # Output: 55
Copier après la connexion

Supplémentaire Ressources :

  • [Modifications de Python 3.0](https://docs.python.org/3/whatsnew/3.0.html)
  • [map() et vues ](https://wiki.python.org/moin/Getting a map() pour renvoyer une liste en Python 3.x)

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