小编典典

什么时候应该使用iteritems()代替items()?

python

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

编辑: 为澄清起见,我想知道以类似于生成器的方式(一次将一项,而不是全部都存储到内存中)以与Python 2和Python
3兼容的方式遍历字典的正确习惯是什么。 ?


阅读 198

收藏
2020-12-20

共1个答案

小编典典

在Python
2.x中-.items()返回(键,值)对的列表。在Python
3.x中,.items()现在是一个itemview对象,其行为各不相同-
因此 必须 对其进行迭代或实例化…因此,Python
2.x中的对象list(dict.items())是必需的dict.items()

Python
2.7版也有一个有点背口密钥处理的,在你有viewkeysviewitems而且viewvalues方法,最有用的存在viewkeys,其表现更像是一个set(你想从预期dict)。

简单的例子:

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

会为您提供常见键的列表,但是同样,在Python 3.x中-只需使用即可.keys()

通常使Python
3.x更加“懒惰”-即map现在有效itertools.imapzipisitertools.izip等等。

2020-12-20