Dict 的 items() 方法与 iteritems() 方法的不同?
参考答案:
在 Python 中,dict
是一个内置的数据类型,用于存储键值对。items()
和 iteritems()
是这个数据类型中的两个方法,用于遍历字典中的键值对。然而,需要注意的是,iteritems()
方法在 Python 3 中已经被移除了,而在 Python 2 中是可用的。
-
items() 方法(Python 2 和 Python 3):
items()
方法返回一个包含字典中所有键值对的视图对象。- 这个视图对象在字典改变时会自动更新。
- 返回的视图对象是一个列表的元组,即
[(key1, value1), (key2, value2), ...]
。 - 在 Python 3 中,
items()
返回一个字典视图对象,它是动态的,也就是说,如果原字典发生改变,视图对象也会相应地改变。
# Python 3 示例
d = {'a': 1, 'b': 2, 'c': 3}
for key, value in d.items():
print(key, value)
-
iteritems() 方法(仅 Python 2):
iteritems()
方法返回一个迭代器,该迭代器产生字典中的键值对。- 和
items()
一样,返回的迭代器在字典改变时也会自动更新。 - 在 Python 2 中,
iteritems()
通常比items()
更高效,因为它返回一个迭代器,而不是一个列表。 - 然而,在 Python 3 中,这个方法已经被移除了,取而代之的是
items()
方法,它现在返回一个动态视图对象,而不是迭代器。
# Python 2 示例
d = {'a': 1, 'b': 2, 'c': 3}
for key, value in d.iteritems():
print(key, value)
总的来说,items()
和 iteritems()
的主要区别在于它们返回的类型:items()
返回一个视图对象,而 iteritems()
返回一个迭代器。此外,iteritems()
仅在 Python 2 中可用,而在 Python 3 中已被移除。在 Python 3 中,你应该使用 items()
来遍历字典的键值对。