Dies ist interessant; list()
, um einen Iterator zu zwingen, die tatsächliche Liste zu bekommen, ist so viel schneller als [x for x in someList]
(Verständnis).Python-Liste() vs Liste Verständnis Gebäude Geschwindigkeit
Ist das echt oder ist mein Test einfach zu einfach? Unten ist der Code:
import time
timer = time.clock()
for i in xrange(90):
#localList = [x for x in xrange(1000000)] #Very slow, took me 6.8s
localList = list(xrange(1000000)) #Very fast, took me 0.9s
print localList[999999] #make sure list is really evaluated.
print "Total time: ", time.clock() - timer
Python 3.4 gibt 5.5s vs 3.6s mit 'timeit', für eine 10^6 Liste. –
@ user5061: die Zeiten hier wären viel besser, wenn sie in eine Funktion eingepackt und Einheimische benutzt werden. In Python 3 erhält ein Listenverständnis seinen eigenen Geltungsbereich (wie ein Generatorausdruck) und Locals sind schneller. –