Python Language Utilisation basique de map, itertools.imap et future_builtins.map


Exemple

La fonction de carte est la plus simple parmi les éléments intégrés Python utilisés pour la programmation fonctionnelle. map() applique une fonction spécifiée à chaque élément dans une itération:

names = ['Fred', 'Wilma', 'Barney']
Python 3.x 3.0
map(len, names)  # map in Python 3.x is a class; its instances are iterable
# Out: <map object at 0x00000198B32E2CF8>

Une map compatible avec Python 3 est incluse dans le module future_builtins :

Python 2.x 2.6
from future_builtins import map  # contains a Python 3.x compatible map()
map(len, names)                  # see below
# Out: <itertools.imap instance at 0x3eb0a20>

Alternativement, en Python 2, on peut utiliser imap d' itertools pour obtenir un générateur.

Python 2.x 2.3
map(len, names)   # map() returns a list
# Out: [4, 5, 6]

from itertools import imap
imap(len, names)  # itertools.imap() returns a generator
# Out: <itertools.imap at 0x405ea20>

Le résultat peut être explicitement converti en une list pour supprimer les différences entre Python 2 et 3:

list(map(len, names))
# Out: [4, 5, 6]

map() peut être remplacé par une expression de compréhension de liste ou de générateur équivalente:

[len(item) for item in names] # equivalent to Python 2.x map()
# Out: [4, 5, 6]

(len(item) for item in names) # equivalent to Python 3.x map()
# Out: <generator object <genexpr> at 0x00000195888D5FC0>