"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment obtenir une liste à partir de l'itérateur `map()` de Python 3 ?

Comment obtenir une liste à partir de l'itérateur `map()` de Python 3 ?

Publié le 2024-12-21
Parcourir:708

How Do I Get a List from Python 3's `map()` Iterator?

Récupération de listes mappées dans Python 3.x : map() en tant qu'itérateur

Dans Python 3.x, la fonction map() renvoie un itérateur au lieu d'une liste. Ce changement a été mis en œuvre pour améliorer l'efficacité de la mémoire et optimiser les performances. Cependant, cela pose un défi si vous devez récupérer les valeurs mappées sous forme de liste pour un traitement ultérieur.

Solution : Conversion de l'itérateur en liste

Pour récupérer le valeurs mappées sous forme de liste, utilisez la fonction list() pour convertir l'itérateur renvoyé par map() :

mapped_list = list(map(chr, [66, 53, 0, 94]))

Ce code renverra une liste contenant les caractères mappés : ['B', '5', '\x00', '^'].

Alternative : Utiliser une compréhension de liste

Une manière plus concise de convertir une liste en une liste de valeurs mappées consiste à utiliser une liste compréhension :

mapped_list = [chr(c) for c in [66, 53, 0, 94]]

Cette expression produit le même résultat que l'exemple map() ci-dessus.

Itération directe sur l'objet cartographique

Dans certains scénarios, vous n'aurez peut-être pas besoin de convertir l'objet cartographique en liste. Vous pouvez parcourir l'objet cartographique directement à l'aide d'une boucle for :

for c in map(chr, [65, 66, 67, 68]):
    print(c)
Ce code imprimera les caractères "ABCD" sans créer de liste inutile.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3