Articles

Livre de recettes Python par

Discussion

En utilisant map avec None comme premier argument est une variation subtile de la normemap appel, qui prend généralement une fonction comme premier argument. Comme l’indique la documentation, si le premier argument est None, la fonction d’identité est utilisée comme fonction par laquelle les arguments sont mappés. S’il y a plusieurs arguments de liste, map renvoie une listconsistant à des tuples contenant les éléments correspondants de toutes les listes (en d’autres termes, c’est une sorte de transposeoperation). Les arguments de liste peuvent être n’importe quel type de séquence, et theresult est toujours une liste.

Notez que la première technique renvoie Nonepour des séquences dans lesquelles il n’y a plus d’éléments. Par conséquent, la sortie de la première boucle est:

Map:a1 b1a2 b2a3 None

zipvous permet de parcourir les listes de manière similaire, mais uniquement jusqu’au nombre d’éléments de la plus petite liste. Par conséquent, la sortie de la deuxième technique est la suivante:

Zip:a1 b1a2 b2

Python 2.0 a introduit des compréhensions de liste, avec une syntaxe un peu étrange:


Cela itère sur la liste b pour chaque élément de a. Ces éléments sont placés dans un tuple (x,y). Nous parcourons ensuite la liste résultante des multiples dans la boucle for la plus externe. La sortie de la troisième technique est donc assez différente:

List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2