gpt4 book ai didi

python - 什么时候应该使用 iteritems() 而不是 items()?

转载 作者:IT老高 更新时间:2023-10-28 12:30:41 26 4
gpt4 key购买 nike

在所有地方使用 items() 代替 iteritems() 是否合法?为什么从 Python 3 中删除 iteritems()?似乎是一个了不起和有用的方法。背后的原因是什么?

编辑:为了澄清,我想知道以类似生成器的方式(一次一个项目,而不是全部进入内存)迭代字典的正确习惯用法兼容 Python 2 和 Python 3?

最佳答案

在 Python 2.x 中 - .items()返回(键,值)对的列表。在 Python 3.x 中,.items()现在是一个 itemview 对象,它的行为不同 - 所以它 必须 被迭代或物化......所以,list(dict.items()) 对于 Python 2.x 中的 dict.items() 是必需的。

Python 2.7 也有一些用于 key 处理的反向端口,因为你有 viewkeys , viewitemsviewvalues方法,最有用的是 viewkeys,它的行为更像是一个 set(你会从 dict 得到它)。

简单示例:

common_keys = list(dict_a.viewkeys() & dict_b.viewkeys())

会给你一个常用键的列表,但同样,在 Python 3.x 中 - 只需使用 .keys() 代替。

Python 3.x 通常变得更加“懒惰”——即 map现在有效 itertools.imap , zipitertools.izip等。

关于python - 什么时候应该使用 iteritems() 而不是 items()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com