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
Leave a Reply