Articles

Python Cookbook von

Diskussion

Mit map mit None Als erstes Argument ist eine subtile Variation des Standardsmap -Aufruf, der normalerweise eine Funktion als erstes Argument verwendet. Wie aus der Dokumentation hervorgeht, wenn das erste Argumentist None , wird die Identitätsfunktion als verwendetfunktion, durch die die Argumente zugeordnet werden. Wenn es mehrere Listenargumente gibt, map gibt eine Liste zurück, die aus Tupeln besteht, die die entsprechenden Elemente aus allen enthaltenlisten (mit anderen Worten, es ist eine Art Transposeoperation). Die Listenargumente können jede Art von Sequenz sein, und das Ergebnis ist immer eine Liste.

Beachten Sie, dass die erste Technik None Fürsequenzen zurückgibt, in denen keine Elemente mehr vorhanden sind. Daher ist die Ausgabe der ersten Schleife:Mit

Map:a1 b1a2 b2a3 None

zip können Sie die Listen auf ähnliche Weise durchlaufen, jedoch nur bis zur Anzahl der Elemente der kleinsten Liste. Daher lautet die Ausgabe der zweiten Technik:

Zip:a1 b1a2 b2

Python 2.0 hat Listenverständnisse eingeführt, mit einer Syntax, die einige etwas seltsam fanden:


Dies iteriert über listb für jedes Element in a. Diese Elemente werden in ein Tupel (x,y) . Wir durchlaufen dann die resultierende Liste von Tupeln in der äußersten for Schleife. Die Ausgabe der dritten Technik ist daher ganz anders:

List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2