python脚本运行后,Itertools对象消失了

时间:2015-07-27 17:48:46

标签: python itertools

我有一个python脚本,我在其中执行以下操作:

iterator = product(*izip(repeat(0,len(myList)),myList))

我使用python命令行,然后执行execfile('myScript.py')。代码运行后,我尝试以下操作:

>>> iterator
<itertools.product object at 0x182f06370>
>>> list(iterator)
[]

但是,如果我在生成print list(iterator)后立即在脚本iterator中放置了一个print语句,则代码会正确打印列表中的元素。

文件执行完成后,为什么元素会消失?这是正常行为吗?

1 个答案:

答案 0 :(得分:1)

来自python docs

  

Iterator是表示数据流的对象。反复拨打电话   iterator的next()方法返回流中的连续项。什么时候   没有更多数据可用于引发StopIteration异常   代替。此时,迭代器对象已耗尽   进一步调用next()方法再次提升StopIteration。