Python kookboek door
discussie
met map
met None
als eerste argument is een subtiele variatie van de standaardmap
aanroep, die meestal een functie als het eerste argument neemt. Zoals de documentatie aangeeft, als het eerste argument None
is, wordt de identiteitsfunctie gebruikt als de functie waarmee de argumenten worden toegewezen. Als er meerdere lijstargumenten zijn, geeft map
een lijst met tupels die de corresponderende items van alllists bevatten (met andere woorden, het is een soort transposeoperation). De lijst argumenten kunnen elke vorm van volgorde, en het resultaat is altijd een lijst.
merk op dat de eerste techniek None
geeft voor gevolgtrekkingen waarin geen elementen meer zijn. Daarom is de output van de eerste lus:
Map:a1 b1a2 b2a3 None
zip
laat u op dezelfde manier de lijsten herhalen, maar alleen tot het aantal elementen van de kleinste lijst. Daarom is de uitvoer van de tweede techniek:
Zip:a1 b1a2 b2
Python 2.0 introduceerde lijstbegrippen, met een syntaxis die enigszins vreemd was:
Dit itereert over Lijstb
voor elk element in a
. Deze elementen worden in een tupel gezet (x,
y)
. We herhalen vervolgens de resulterende lijst van veelvouden in de buitenstefor
lus. De output van de derde techniek is daarom heel anders:
List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2
Leave a Reply