栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

可以在Python中重置迭代器吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

可以在Python中重置迭代器吗?

我看到很多建议itertools.tee的答案,但这忽略了文档中的一项重要警告:

此itertool可能需要大量辅助存储(取决于需要存储多少临时数据)。一般来说,如果一个迭代器使用大部分或全部的数据的另一个前开始迭代器,它是更快地使用

list()
代替
tee()

基本上,

tee
是专为那些在两个(或更多)一个迭代器的克隆,而相互“同步失控”,不这样做的情况 由多
-相反,他们在相同的“附近”说(一彼此后面或前面的几个项目)。不适合OP的“从头开始重做”问题。

L =list(DictReader(...))
另一方面,只要字典列表可以舒适地存储在内存中,就非常适合。可以随时使用制作新的“从头开始的迭代器”(非常轻巧且开销低)
iter(L)
,并且可以部分或全部使用它,而不会影响新的或现有的迭代器;其他访问模式也很容易获得。

正如正确回答的几个答案所述,在特定情况下,

csv
您还可以
.seek(0)
使用基础文件对象(一种特殊情况)。我不确定它是否已记录在案并得到保证,尽管目前可以使用。仅对真正巨大的csv文件可能值得考虑,
list
我建议在其中使用通用方法,因为一般方法的内存占用量太大。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/634381.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号