Python Cookbook af
Diskussion
brug af map
medNone
som det første argument er en subtil variation af standardenmap
opkald, 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
Leave a Reply