Articles

Python Kokebok av

Diskusjon

BrukemapmedNone som det første argumentet Er en subtil variasjon av standarden map samtale, som vanligvis tar en funksjon som det første argumentet. Som dokumentasjonen indikerer, hvis det første argumenteter None, brukes identitetsfunksjonen som funksjonen som argumentene tilordnes. Hvis det er flere listeargumenter, map returnerer en listeconsisting av tupler som inneholder tilsvarende elementer fra alllister (med andre ord, det er en slags transposeoperasjon). Listeargumentene kan være noen form for sekvens, og resultatet er alltid en liste.

Merk at den første teknikken returnerer None forsekvenser der det ikke er flere elementer. Derfor er utgangen av den første sløyfen:

Map:a1 b1a2 b2a3 None

zip lar deg iterere overslistene på en lignende måte, men bare opp til antall elementer iden minste listen. Derfor er utgangen av den andre teknikken:

Zip:a1 b1a2 b2

Python 2.0 introdusert liste comprehensions, med en syntaks som somefound litt rart:


dette gjentar over listenb for hvert element i a. Disse elementene er satt inn i en tuple (x,y). Vi itererer deretter gjennom den resulterende listen oftuples i den ytrefor loop. Utgangen avden tredje teknikken er derfor ganske annerledes:

List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2