Articles

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