Tại sao hay tại sao không?
range(1000)
là một list
, xrange(1000)
là một đối tượng hoạt động như một generator
(mặc dù nó chắc chắn không phải là một). Ngoài ra, xrange
là nhanh hơn. Bạn có thể import timeit from timeit
và sau đó thực hiện một phương thức vừa có for i in xrange: pass
và một phương pháp khác range
, sau đó thực hiện timeit(method1)
và timeit(method2)
, lo và kìa, xrange đôi khi nhanh gấp đôi (đó là khi bạn không cần một danh sách). (Đối với tôi, lần lượt i in xrange(1000):pass
so với i in range(1000):pass
mất 13.316725969314575
so với 21.190124988555908
giây - đó là rất nhiều.)