最近我开始使用Python3,它缺乏xrange的伤害。

简单的例子:

Python2: 从时间导入时间为t def count (): St = t() [x for x in xrange(10000000)如果x%4 == 0] Et = t() 打印et-st count () Python3: 从时间导入时间为t def xrange (x): 返回iter(范围(x)) def count (): St = t() [x for x in xrange(10000000)如果x%4 == 0] Et = t() 打印(et-st) count ()

结果分别为:

1.53888392448 3.215819835662842

为什么呢?我是说,为什么xrange被删除了?这是一个很好的学习工具。对于初学者来说,就像我一样,就像我们所有人一样。为什么要移除它?谁能告诉我正确的PEP,我找不到。

我在运行python程序时得到一个错误:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 110, in <module>
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 27, in __init__
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\class\inventory.py", line 17, in __init__
builtins.NameError: global name 'xrange' is not defined

这个游戏来自这里。

是什么导致了这个错误?

显然xrange更快,但我不知道为什么它更快(除了目前为止的传闻之外,没有证据表明它更快),或者除此之外还有什么不同

for i in range(0, 20):
for i in xrange(0, 20):