Python 2.X中的range函数和xrange函数有什么区别?
2022-09-05 01:19:50
显然xrange更快,但我不知道为什么它更快(除了到目前为止的轶事之外,没有任何证据证明它更快),或者除此之外还有什么不同之处
for i in range(0, 20):
for i in xrange(0, 20):
显然xrange更快,但我不知道为什么它更快(除了到目前为止的轶事之外,没有任何证据证明它更快),或者除此之外还有什么不同之处
for i in range(0, 20):
for i in xrange(0, 20):
在 Python 2.x 中:
range
创建一个列表,因此,如果这样做,则会在内存中创建一个包含元素的列表。range(1, 10000000)
9999999
xrange
是一个懒惰地计算的序列对象。
在 Python 3 中:
range
相当于 Python 2 的 .要获取列表,必须显式使用 。xrange
list(range(...))
xrange
不再存在。范围会创建一个列表,因此,如果这样做,则会在内存中创建一个包含元素的列表。
range(1, 10000000)
9999999
xrange
是一个生成器,所以它是一个序列对象,是一个懒惰地计算的对象。
这是真的,但是在Python 3中,将由Python 2实现。如果您需要实际生成列表,则需要执行以下操作:range()
xrange()
list(range(1,100))