Zwillingssterns Weltenwald
Published on Zwillingssterns Weltenwald (http://www.zwillingsstern.de)

Startseite > Geschwindigkeitstest - zwei Arten des for loops über tuples

Geschwindigkeitstest - zwei Arten des for loops über tuples

Ich habe getestet, ob es einen Geschwindigkeitsunterschied zwischen zwei Arten des for loops über eine Liste von tuples gibt:

liste_von_tuples = [(1, 2), (3, 4), (5, 6)]

Es gibt 100.000 tuple, und jeder tuple enthält 2 Zufallszahlen.

Art 1:

for i in liste_von_tuples: 
   res.append(i[1])

Art 2:

for i, j in liste_von_tuples: 
   res.append(j)

Ich hatte erwartet, dass die zweite Art schneller ist, da bei Art 1 eine Zuweisungsoperation von zwei Werten und danach eine Auswahloperation und eine Zuweisungsoperation nötig sind, während bei Art 2 die Auswahloperation wegfällt.

Der Test bestätigte meine Ansicht.

Art 1 braucht bei der Liste mit 100.000 Tuples von je 2 Zufallszahlen zwischen 4% und 12% länger.

Fazit: Bei for loops über tuple, sollte Art 2 verwendet werden:

for i, j in liste_von_tuples: 
   res.append(j)

Die verwendete und ausführlich kommentierte Testdatei ist angehängt.

Anmerkung: Meine Python Tests können jetzt auch mit Mercurial heruntergeladen werden: http://bitbucket.org/ArneBab/python_tests/ [1]

Ideen und Patches wären cool :)

AnhangGröße
for-loops-geschwindigkeitstest.py [2]5.57 KB
Werke von Arne Babenhauserheide. Lizensiert, wo nichts anderes steht, unter der GPLv3 or later und weiteren freien Lizenzen.

Diese Seite nutzt Cookies. Und Bilder. Manchmal auch Text. Eins davon muss ich wohl erwähnen — sagen die meisten anderen, und ich habe grade keine Zeit, Rechtstexte dazu zu lesen…


Source URL: http://www.zwillingsstern.de/deutsch/freie-software/licht/python/geschwindigkeitstest-zwei-arten-des-for-loops-ueber-eine-liste-von-tuplen

Links:
[1] http://bitbucket.org/ArneBab/python_tests/
[2] http://www.zwillingsstern.de/files/for-loops-geschwindigkeitstest.py_2.txt