Python迭代器内存错误

时间:2015-05-15 02:14:14

标签: python

我正在运行这个程序来创建一个迭代器,但是在它开始打印任何东西之前我都遇到了内存错误。

def test():
        for x in range(10000000000000):
                yield x

for x in test():
        print 'hi'

输出:

tutorial@p1980:~/tej$ python itertest.py
Traceback (most recent call last):
  File "itertest.py", line 7, in <module>
    for x in test():
  File "itertest.py", line 4, in test
    for x in range(10000000000000):
MemoryError

1 个答案:

答案 0 :(得分:3)

您似乎使用的是Python 2.在这种情况下,请使用xrange()而不是range()xrange()函数返回一个对象,它的作用类似于迭代器而不是列表。

在Python 3中,range()返回一个像迭代器一样工作的对象,并且不提供xrange()函数。