639 votes

Obtenir un map() pour retourner une liste en Python 3.x

J'essaie de convertir une liste en hexagone, puis d'utiliser cette liste ailleurs. Dans python 2.6, c'était facile :

A : Python 2.6 :

>>> map(chr, [66, 53, 0, 94])
['B', '5', '\x00', '^']

Cependant, dans Python 3.1, la méthode ci-dessus renvoie un objet map.

B : Python 3.1 :

>>> map(chr, [66, 53, 0, 94])
<map object at 0x00AF5570>

Comment puis-je récupérer la liste mappée (comme dans A ci-dessus) sur Python 3.x ?

Sinon, existe-t-il une meilleure façon de procéder ? Mon objet liste initial comporte environ 45 éléments et je voudrais les convertir en hexagones.

16 votes

Il est plus pythique d'utiliser un fichier compréhension de la liste . map() était presque retiré de la langue parce qu'il n'y a aucune raison de l'utiliser au lieu d'une compréhension de liste ou d'une for boucle.

0voto

Akshay Satpaise Points 19

Vous pouvez essayer d'obtenir une liste à partir de l'objet map en itérant simplement chaque élément de l'objet et en le stockant dans une variable différente.

a = map(chr, [66, 53, 0, 94])
b = [item for item in a]
print(b)
>>>['B', '5', '\x00', '^']

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X