Articles

Python Cookbook af

Diskussion

brug af mapmedNonesom det første argument er en subtil variation af standardenmapopkald, som typisk tager en funktion som det første argument. Som dokumentationen angiver, hvis den første argumenterer None, bruges identitetsfunktionen somfunktion, gennem hvilken argumenterne kortlægges. Hvis der erflere listeargumenter, map returnerer en listebestående af tupler, der indeholder de tilsvarende elementer fra allelister (med andre ord, det er en slags transposoperation). Listen argumenter kan være nogen form for sekvens, ogResultatet er altid en liste.

Bemærk, at den første teknik returnererNone forsekvenser, hvor der ikke er flere elementer. Derfor er udgangenaf den første sløjfe er:

Map:a1 b1a2 b2a3 None

zip lader dig gentage overlisterne på en lignende måde, men kun op til antallet af elementer på den mindste liste. Derfor er udgangen af den anden teknik:

Zip:a1 b1a2 b2

Python 2.0 introducerede listeforståelser med en syntaks, som noglefundet lidt mærkeligt:


dette gentager over listenb for hvert element i a. Disse elementer sættes i en tupel (x,y). Vi gentager derefter gennem den resulterende liste overtuples i den yderstefor loop. Udgangen afden tredje teknik er derfor helt anderledes:

List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2