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
Libérer: 2024-12-15 02:14:14
original
967 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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]))
Copier après la connexion

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]]
Copier après la connexion

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"
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal