Python >> Tutoriel Python >  >> Python

Comment obtenir map() pour renvoyer une liste en Python 3.x

Récapitulatif :La fonction map() de Python prend une fonction et un itérable, comme une liste, comme arguments. Il applique ensuite la fonction à chaque élément de l'itérable.

Il renvoie un ma p objet. ?

Mais que se passe-t-il si vous n'avez pas besoin d'un objet cartographique mais d'une liste ?

Ancien :En Python 2.x c'était facile :le map() fonction a simplement renvoyé une liste plutôt qu'un objet de carte itérable.

# Python 2.X
print(map(lambda x: x+1, [1, 2, 3]))
# Output: [2, 3, 4]

Nouveau :Mais si nous essayons ceci dans Python 3.x, la sortie n'est pas aussi jolie :

print(map(lambda x: x+1, [1, 2, 3]))
# Output: <map object at 0x0000013CE75DB4E0>

Bah !

Réparons ça !

Solution :list(map(...))

Pour obtenir le map() intégré de Python fonction pour retourner une liste en Python 3.x, passez l'objet map dans le list() constructeur pour convertir le map itérable objet dans une liste. Par exemple, pour convertir l'objet cartographique créé par map(lambda x: x+1, [1, 2, 3]) à une liste Python, utilisez list(map(lambda x: x+1, [1, 2, 3])) .

print(list(map(lambda x: x+1, [1, 2, 3])))
# Output: [2, 3, 4]

Si vous avez d'autres questions, n'hésitez pas à rejoindre notre académie par e-mail et à demander !