[Python-de] flache Liste

Harald Armin Massa haraldarminmassa at gmail.com
Mon Jul 4 13:13:51 CEST 2005


Henning,


Eigentlich verstehe ich auch den Sinn der Generatoren nicht.
> Sind sie schneller/effektiver als die anderen Konstrukte?
> 

Eine List-Comprehension erzeugt eine Liste im Speicher. Für jedes Element in 
der Liste wird Speicher angefordert.

Ein Generator lebt "von der Hand in den Mund", es wird also immer nur das 
Objekt _generiert_, daß der Consumer gerade braucht. 

also 

sum([listkomprehension])

listkomprehension wird vollständig berechnet und im Speicher alloziert, dann 
wird sum darauf ausgeführt

sum(generatorexpression)

es wird das erste Ergebnis erzeugt, an sum gegeben; sum addiert auf und 
fragt: "mehr?"

somit: generator-Expressions verbraten im allgemeinen weniger Speicher

Gruß

HArald



-- 
GHUM Harald Massa
persuasion python postgresql
Harald Armin Massa
Reinsburgstraße 202b
70197 Stuttgart
0173/9409607
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: http://starship.python.net/pipermail/python-de/attachments/20050704/adf4a6d7/attachment.htm