Python kokbok av
diskussion
använda map
med None
som det första argumentet är en subtil variation av standardenmap
samtal, som vanligtvis tar en funktion som det första argumentet. Som dokumentationen indikerar, om det första argumentetär None
, används identitetsfunktionen somfunktion genom vilken argumenten kartläggs. Om det finns flera listargument, map
returnerar en listbestående av tuples som innehåller motsvarande objekt från alllists (med andra ord, det är en slags transposeoperation). Listargumenten kan vara vilken typ av sekvens som helst, och resultatet är alltid en lista.
Observera att den första tekniken returnerar None
försekvenser där det inte finns fler element. Därför är utmatningenav den första slingan:
Map:a1 b1a2 b2a3 None
zip
låter dig iterera överlistorna på ett liknande sätt, men bara upp till antalet element iden minsta listan. Därför är utgången från den andra tekniken:
Zip:a1 b1a2 b2
Python 2.0 introducerade listförståelser, med en syntax som somefound lite konstigt:
detta itererar över listanb
för varje element i a
. Dessa element sätts i en tupel (x,
y)
. Vi upprepar sedan genom den resulterande listan oftuples i yttersta for
loop. Utgången från den tredje tekniken är därför helt annorlunda:
List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2
Leave a Reply