Le site map
peut être très utile ici. Utilisation de map
on peut appliquer n'importe quelle fonction à chaque élément d'un itérable.
Python 3.x
>>> def my_mul(x,y):
... return x*y
...
>>> a = [1,2,3,4]
>>> b = [2,3,4,5]
>>>
>>> list(map(my_mul,a,b))
[2, 6, 12, 20]
>>>
Bien sûr :
map(f, iterable)
est équivalent à
[f(x) for x in iterable]
Nous pouvons donc obtenir notre solution via :
>>> [my_mul(x,y) for x, y in zip(a,b)]
[2, 6, 12, 20]
>>>
En Python 2.x map()
signifie : appliquer une fonction à chaque élément d'une itérable et construire une nouvelle liste. En Python 3.x, map
construire des itérateurs au lieu de listes.
Au lieu de my_mul
nous pourrions utiliser mul
opérateur
Python 2.7
>>>from operator import mul # import mul operator
>>>a = [1,2,3,4]
>>>b = [2,3,4,5]
>>>map(mul,a,b)
[2, 6, 12, 20]
>>>
Python 3.5 et plus
>>> from operator import mul
>>> a = [1,2,3,4]
>>> b = [2,3,4,5]
>>> [*map(mul,a,b)]
[2, 6, 12, 20]
>>>
Veuillez noter que depuis map()
construit un itérateur, nous utilisons *
opérateur de déballage des itérables pour obtenir une liste. L'approche par déballage est un peu plus rapide que l'approche par défaut. list
constructeur :
>>> list(map(mul,a,b))
[2, 6, 12, 20]
>>>