Articles

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