假设 mydict
是一个 Python 字典。
mydict = {'a': 1, 'b': 2}
我可以使用 items
来迭代它的元素:
for k,v in mydict.items():
print k,v
或者使用iteritems
:
for k,v in mydict.iteritems():
print k,v
有什么区别?我认为 Python 的哲学是“只有一种方法”?
最佳答案
在 Python 3 中,dict.iter...()
方法已被删除并替换了普通方法。
它们的存在是因为迭代器是在字典之后添加到语言中的,所以 dict.items()
返回一个列表。添加了 dict.iter...()
方法以允许人们制作更高效的程序(因为迭代器是惰性的),但也不破坏与期望列表的旧程序的兼容性。
由于 Python 3 破坏了兼容性,此问题已得到修复。 (dict.iter()
的旧用法可以用 list(dict.iter())
生成。注意在 Python 3 中 dict.items()
实际上返回一个 dictionary view - 它可以迭代,但也提供其他功能。
关于python - 为什么字典需要那些 'iter' 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9926832/