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.
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
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]))
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.
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!