我碰到一些代码,从迪纳摩数据库取回一个反复的对象,我可以这样做:在Python中,如何为迭代对象迭代多次?
print [en["student_id"] for en in enrollments]
然而,当我再次做类似的事情:
print [en["course_id"] for en in enrollments]
然后第二次迭代会什么都不打印出来,因为迭代结构只能迭代一次,并且已经到了最后。 (1)如果已知只有迭代中的几个项目(2)如果我们知道会有很多项目,那么如何迭代它不止一次(比如说一百万个项目),我们不想花费很多额外的内存空间?
相关的是,我抬头看rewind
,它似乎是存在的PHP和Ruby,但不是为Python?
存储所有数据的唯一其他选项栏是'a,b = itertools.tee(it)',但这只有在您没有首先使用一个迭代器来使用全部/大部分数据时才有用,如果这样你最好用清单来证明你的情况。 –