die ersten 10 Einträge eines Dictionaries ausgeben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

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?
Die Liste wird in dem Moment erzeugt, in dem du list(_) ausführst.
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')]
rolgal_reloaded
User
Beiträge: 312
Registriert: Dienstag 24. Oktober 2006, 19:31

@BlackJack, mkallas

Alles Klar :!: :!: Ist ja ganz logisch. Ich war durch die Darstellung zunächst verwirrt.

LG

rolgal_reloaded
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

rolgal_reloaded hat geschrieben:Alles Klar :!: :!: Ist ja ganz logisch. Ich war durch die Darstellung zunächst verwirrt.
Ich fand auch, es war zuviel auf einmal. Habe daher das Beispiel im Wiki entsprechend geändert. Wenn jemand einen besseren Namen als "generator" weiß, nur zu!
Antworten