📜  Python中 dict.items() 和 dict.iteritems() 的区别(1)

📅  最后修改于: 2023-12-03 15:04:28.613000             🧑  作者: Mango

Python中 dict.items() 和 dict.iteritems() 的区别

在 Python 中,我们经常需要对字典(dict)进行遍历操作,获取其中的键(key)或值(value),此时往往会用到 dict.items()dict.iteritems() 两个方法。那么这两者有什么区别呢?

dict.items()

dict.items() 用于将字典中所有项以列表形式返回,列表中每个项为 (key, value) 的形式,即包含字典的键和值两个元素。这个方法可以方便我们对字典进行遍历操作,例如:

>>> dict1 = {'a': 1, 'b': 2, 'c': 3}

>>> for item in dict1.items():
...     print(item)
...
('a', 1)
('b', 2)
('c', 3)
dict.iteritems()

dict.iteritems()dict.items() 很相似,也是将字典中所有项以 (key, value) 的形式返回,但它返回的是一个迭代器对象。这个迭代器对象可以在遍历时节省内存,因为它不会一次性将所有项都返回,而是在需要的时候逐个返回。例如:

>>> dict1 = {'a': 1, 'b': 2, 'c': 3}

>>> for item in dict1.iteritems():
...     print(item)
...
('a', 1)
('b', 2)
('c', 3)

注意,dict.iteritems() 这个方法只在 Python 2.x 中存在,在 Python 3.x 中已被移除。在 Python 3.x 中,如果要使用这个功能,可以使用 dict.items() 方法替代,或者使用 viewitems() 方法。例如:

>>> dict1 = {'a': 1, 'b': 2, 'c': 3}

>>> for item in dict1.viewitems():
...     print(item)
...
('a', 1)
('b', 2)
('c', 3)

综上所述,区别主要在于返回值类型和遍历方式上。dict.items() 返回的是一个列表,dict.iteritems() 返回的是一个迭代器对象。在 Python 2.x 中,如果需要节省内存并且提高遍历效率,可以使用 dict.iteritems() 方法;在 Python 3.x 中,由于 dict.iteritems() 方法已被移除,因此只能使用 dict.items()dict.viewitems() 方法。