我正在运行这个程序来创建一个迭代器,但是在它开始打印任何东西之前我都遇到了内存错误。
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
答案 0 :(得分:3)
您似乎使用的是Python 2.在这种情况下,请使用xrange()
而不是range()
。 xrange()
函数返回一个对象,它的作用类似于迭代器而不是列表。
在Python 3中,range()
返回一个像迭代器一样工作的对象,并且不提供xrange()
函数。