一次性消耗
  X5zJxoD00Cah 2023年12月11日 14 0

迭代器(zip, zip_longest, itertuples等)只供一次性消耗

https://blog.51cto.com/u_16055028/8498541

open().read()只能使用一次, 除非f.seek(0)将句柄放回文件的开头
with open(path, "r", encoding="utf-8") as f:
    doc_config = tomlkit.parse(f.read())
    dic_config = dict(doc_config)
在Python中,有一些函数或方法会返回一个迭代器,这些迭代器只能被消耗一次。除了你提到的`zip()`,`itertools.zip_longest()`,`itertuples()`和`open().read()`之外,还有以下一些函数或方法¹²:

- `dict.items()`: 返回一个迭代器,可以遍历字典的键值对。
- `dict.keys()`: 返回一个迭代器,可以遍历字典的键。
- `dict.values()`: 返回一个迭代器,可以遍历字典的值。
- `enumerate()`: 返回一个迭代器,可以遍历序列的索引和值。
- `filter()`: 返回一个迭代器,只包含满足特定条件的元素。
- `map()`: 返回一个迭代器,包含将函数应用于每个元素的结果。
- `reversed()`: 返回一个迭代器,按照相反的顺序遍历序列。
- `itertools`模块中的许多函数,如`itertools.chain()`,`itertools.combinations()`,`itertools.permutations()`等。

这些函数或方法返回的迭代器在遍历完之后就会被耗尽,如果你想再次遍历它们,你需要重新创建迭代器¹²。希望这个信息对你有所帮助!如果你有任何其他问题,欢迎随时向我提问。¹²

源: 与必应的对话, 2023/12/11
(1) 如何优雅的统计Python代码耗时?Python统计代码耗时的几种方法 - 知乎. https://zhuanlan.zhihu.com/p/361170046.
(2) Python高级技巧:用一行代码减少一半内存占用 - 知乎. https://zhuanlan.zhihu.com/p/50986707.
(3) (十一)加速python运行效率(降低内存)方法 - 知乎. https://zhuanlan.zhihu.com/p/623535929.
(4) python使用完一个函数,如何实时释放内存-CSDN社区. https://bbs.csdn.net/topics/394482644.
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月11日 0

暂无评论

推荐阅读
  X5zJxoD00Cah   2023年12月11日   15   0   0 知乎Python迭代器
  X5zJxoD00Cah   2023年12月12日   17   0   0 Python.net
X5zJxoD00Cah