python - 为什么字典需要那些 'iter' 方法?

标签 python iterator

假设 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/

相关文章:

c++ - 列表迭代器不兼容

php - RecursiveIteratorIterator 最后一个 child

python - 包括额外的上下文值 Django Rest Framework

python - 使 django webapp 自行重启的最佳实践

python - 在 python 中验证对等点

python - 将元组分配给两个数组字段

python - 检查弃用警告的代码

rust - 循环Rust迭代器给定次数

python-3.x - 在可迭代(语法糖)的索引 i 处查找项目?

c++ - string::erase 不接受迭代器?