Die Liste wird in dem Moment erzeugt, in dem du list(_) ausführst.rolgal_reloaded hat geschrieben: Ich habe mir izip ein bisschen angeguckt - das Beispiel im Wiki.
Nun wenn man das Iteratorobjekt erzeugt und gleich list(_) eingibt, dann sieht man eigentlich die ganze Liste.
Sie ist also doch komplett vorhanden. Muss sie von der Logik her auch, aber wie kann es dann zu einem Performancevorteil gegenüber zip() kommen?
Sie ist keineswegs vorher vorhanden, es ist nur ein Mechanismus zur Erzeugung der Liste (Generator) vorhanden. Daher die Vorteile der Generatoren.
Willst du normalerweise auf die Liste zugreifen, dann mußt du das Generatorobjekt "benennen":
Code: Alles auswählen
>>> from itertools import izip, islice
>>> generator = izip([1, 2, 3], ['a', 'b', 'c'])
>>> generator
<itertools.izip object at 0x00AC2E18>
>>> list(generator)
[(1, 'a'), (2, 'b'), (3, 'c')]