dict.items()和之间有任何适用的区别dict.iteritems()吗?
dict.items()
dict.iteritems()
来自Python 文档:
dict.items():返回字典的(键,值)对列表的 副本。 dict.iteritems():在字典的(键,值)对上返回一个 迭代器。
dict.items():返回字典的(键,值)对列表的 副本。
dict.iteritems():在字典的(键,值)对上返回一个 迭代器。
如果我运行下面的代码,每个似乎都返回对同一对象的引用。我是否缺少任何细微的差异?
#!/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
这是进化的一部分。
最初,Pythonitems()构建了一个真实的元组列表并将其返回。这可能会占用大量额外的内存。
items()
然后,生成器被引入到语言中,并且该方法被重新实现为名为 的迭代器-生成器方法iteritems()。原始保留是为了向后兼容。
iteritems()
Python 3 的一个变化是 items()现在返回视图,并且 alist永远不会完全构建。该iteritems()方法也消失了,因为items()在 Python 3 中的工作方式与viewitems()在 Python 2.7 中一样。
list
viewitems()