Maison >développement back-end >Tutoriel Python >Comment convertir l'objet « map » de Python 3 en liste ?

Comment convertir l'objet « map » de Python 3 en liste ?

DDD
DDDoriginal
2024-12-15 02:14:14967parcourir

How to Convert Python 3's `map` Object to a List?

Conversion d'objets cartographiques en listes dans Python 3.x

Dans Python 3.x, la fonction map() renvoie un itérateur par défaut au lieu d'une liste. Cela peut être gênant si vous souhaitez utiliser les éléments mappés directement.

Énoncé du problème

Une tâche courante consiste à convertir une liste d'entiers en leurs représentations hexadécimales. Dans Python 2.6, cela était simple en utilisant la fonction map(), comme indiqué ci-dessous :

# Python 2.6
hex_list = map(chr, [66, 53, 0, 94])  # Return a list of hex characters

Cependant, dans Python 3.1, le code ci-dessus renvoie un objet map :

# Python 3.1
hex_map = map(chr, [66, 53, 0, 94])  # Return a map object

Solution

Pour récupérer la liste réelle des éléments mappés dans Python 3.x, vous pouvez utiliser la fonction list() pour convertir l'objet map en un list :

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

Meilleure alternative

Une approche alternative pour mapper une liste d'entiers à leurs représentations hexadécimales consiste à utiliser une compréhension de liste, comme suit :

hex_list = [chr(n) for n in [66, 53, 0, 94]]

Cette approche élimine le besoin d'utiliser la fonction map() et crée directement une liste.

Itération sur Map Objets

Notez que vous pouvez toujours parcourir un objet cartographique dans Python 3.x sans le convertir au préalable en liste :

for ch in map(chr, [65, 66, 67, 68]):
    print(ch)  # Prints "ABCD"

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!

Déclaration:
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