我遇到了一些从Dynamo数据库中获取迭代对象的代码,并且我可以这样做:
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)
,但前提是您不需要使用所有或大部分数据与第一个迭代器一起使用。如果是这种情况,最好使用列表。 - Padraic Cunningham