gpt4 book ai didi

python - Python2 中的 dict.items() 和 dict.iteritems() 有什么区别?

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

dict.items() 之间是否有任何适用的差异?和 dict.iteritems() ?

来自 Python docs :

dict.items(): Return a copy of the dictionary’s list of (key, value) pairs.

dict.iteritems(): Return an iterator over the dictionary’s (key, value) pairs.

如果我运行下面的代码,每个似乎都返回对同一对象的引用。有没有我遗漏的细微差别?

#!/usr/bin/python

d={1:'one',2:'two',3:'three'}
print 'd.items():'
for k,v in d.items():
if d[k] is v: print '\tthey are the same object'
else: print '\tthey are different'

print 'd.iteritems():'
for k,v in d.iteritems():
if d[k] is v: print '\tthey are the same object'
else: print '\tthey are different'

输出:

d.items():
they are the same object
they are the same object
they are the same object
d.iteritems():
they are the same object
they are the same object
they are the same object

最佳答案

这是进化的一部分。

最初,Python items() 构建了一个真实的元组列表并将其返回。这可能会占用大量额外的内存。

然后,生成器被引入到语言中,并且该方法被重新实现为名为 iteritems() 的迭代器-生成器方法。保留原件是为了向后兼容。

Python 3 的一个变化是 items() 现在返回 View ,而 list 永远不会完全构建。 iteritems() 方法也消失了,因为 Python 3 中的 items() 与 Python 2.7 中的 viewitems() 一样工作。

关于python - Python2 中的 dict.items() 和 dict.iteritems() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458437/

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