[Python-de] Probleme mit listen

Mike Müller mmueller at python-academy.de
Fr Okt 25 19:24:27 CEST 2013


Am 25.10.13 18:56, schrieb Alexander Langer:
> Wie ist das eigentlich intern, wird für jedes neue Listenelement
> Speicher angefordert oder wird bereits bei der erstmaligen Verwendung
> eine Liste bestimmter Größe erstellt und später dynamisch erweitert ?

Man kann so was messen.

Nehmen wir mal dieses Beispiel:

length = 10
my_list= []
for elem in xrange(length): # in Python 3 bitte range nutzen
    my_list.append(elem)

Dann ergeben sich für unterschiedliche Längen der erzeugten Liste
folgen Anzahlen von Speicheranforderungen:

        length: allocations
            10:   3
           100:  10
          1000:  27
         10000:  46
        100000:  65
       1000000:  85
      10000000: 104

(gemessen für CPython 2.7)

> Wird ja immer empfohlen eine Liste bereits im Vorfeld zu initialisieren...

Python macht das quasi im Hintergrund. Die Liste ist also immer etwas größer
als eigentlich nötig. Python nutzt mehr Speicher, um wesentlich schneller
zu sein.

Viele Grüße
Mike

> _______________________________________________
> python-de maillist  -  python-de at python.org
> https://mail.python.org/mailman/listinfo/python-de
> 



Mehr Informationen über die Mailingliste python-de