Por que ou por que não?
range(1000)
é a list
, xrange(1000)
é um objeto que age como um generator
(embora certamente não seja um). Além disso, xrange
é mais rápido. Você pode import timeit from timeit
e, em seguida, fazer um método que só tem for i in xrange: pass
e outro para range
, em seguida, fazer timeit(method1)
e timeit(method2)
e, vejam só, xrange é quase duas vezes mais rápido às vezes (que é quando você não precisa de uma lista). (Para mim, para i in xrange(1000):pass
vs para i in range(1000):pass
levou 13.316725969314575
vs 21.190124988555908
segundos, respectivamente - que é um monte.)