现在位置: 首页 > Python 3 教程 > 正文

Python3 字典 items() 方法

Python3 字典 Python3 字典


描述

Python 字典的 items() 方法用于获取字典中所有的键值对(key/value),返回一个 dict_items 视图对象。

视图对象中的每个元素都是一个包含两个值的元组,格式为 (key, value),分别表示字典的键和值。

例如:

dict_items([('Name', 'Runoob'), ('Age', 7)])

items() 返回的不是列表,而是一个动态视图。当字典中的元素发生变化时,视图对象也会反映这些变化。

与 keys() 和 values() 一样,items() 返回的视图对象支持遍历,但不支持通过索引直接访问元素。

如果需要使用索引访问,可以先使用 list() 将视图转换为列表。

语法

items() 方法语法如下:

dict.items()

参数

无。

返回值

返回一个 dict_items 视图对象,包含字典中的所有键值对。

该对象具有以下特点:

  • 可以使用 for 循环遍历。
  • 每个键值对以 (key, value) 元组形式表示。
  • 字典发生变化时,视图会动态反映变化。
  • 不支持通过下标直接访问元素。
  • 可以使用 list() 转换为列表。

从 Python 3.7 开始,字典的插入顺序成为语言规范的一部分,因此 items() 遍历键值对时会保留字典的插入顺序。

实例

以下实例展示了 items() 方法的基本使用:

实例

#!/usr/bin/python3 tinydict = {'Name': 'Runoob', 'Age': 7} print("Value : %s" % tinydict.items())

以上实例输出结果为:

Value : dict_items([('Name', 'Runoob'), ('Age', 7)])

可以看到,返回结果包含两个键值对,每个键值对都以元组形式表示。

实例 2:遍历字典的键和值

items() 最常见的用途是配合 for 循环,同时获取字典的键和值。

实例

tinydict = { 'Name': 'Runoob', 'Age': 7, 'Site': 'www.runoob.com' } for key, value in tinydict.items(): print(key, ":", value)

执行结果:

Name : Runoob
Age : 7
Site : www.runoob.com

其中,key 接收字典的键,value 接收对应的值。这种写法使用了 Python 的元组解包功能。

实例 3:将 items() 转换为列表

由于 dict_items 不支持索引,如果需要根据下标访问键值对,可以先将它转换为列表。

实例

tinydict = {'Name': 'Runoob', 'Age': 7} items_list = list(tinydict.items()) print(items_list) print(items_list[0]) print(items_list[1])

执行结果:

[('Name', 'Runoob'), ('Age', 7)]
('Name', 'Runoob')
('Age', 7)

注意:转换后的列表是转换时的结果,不会随着原字典新增或删除键值对而自动更新。

实例 4:动态视图

items() 返回的视图与原字典保持关联。

修改字典中的值、添加或删除键值对后,再次查看同一个视图对象,可以看到更新后的内容。

实例

tinydict = {'Name': 'Runoob', 'Age': 7} # 获取视图对象 items_view = tinydict.items() print(items_view) # 修改字典中的值 tinydict['Age'] = 8 # 添加新的键值对 tinydict['Site'] = 'www.runoob.com' print(items_view)

执行结果:

dict_items([('Name', 'Runoob'), ('Age', 7)])
dict_items([('Name', 'Runoob'), ('Age', 8), ('Site', 'www.runoob.com')])

可以看到,虽然只调用了一次 items(),但当原字典发生变化时,视图对象显示的内容也随之更新。

需要注意,不能通过视图对象直接增删字典中的键值对。如果需要修改字典,应操作原字典。

实例 5:判断键值对是否存在

items() 返回的视图还支持使用 in 运算符判断某个键值对是否存在。

实例

tinydict = {'Name': 'Runoob', 'Age': 7} print(('Name', 'Runoob') in tinydict.items()) print(('Age', 8) in tinydict.items())

执行结果:

True
False

判断时需要同时匹配键和值。例如,('Age', 8) 不存在,因为字典中 'Age' 对应的值是 7。

注意事项

  • 返回的是视图:items() 不会直接返回列表,也不会创建一份独立的键值对列表副本。
  • 支持动态更新:修改原字典后,视图会反映最新内容。
  • 不支持索引:不能使用 dict.items()[0],需要时可转换为列表。
  • 遍历时避免修改字典大小:在遍历视图期间新增或删除键值对,可能引发 RuntimeError 或导致遍历结果不完整。
  • 保留插入顺序:Python 3.7 及以上版本保证字典按照键的插入顺序进行遍历。

如果需要遍历字典并删除符合条件的键,可以先创建键值对列表副本:

实例

scores = { 'Tom': 85, 'Jack': 59, 'Lucy': 92 } # 遍历副本,避免修改原字典时影响迭代 for name, score in list(scores.items()): if score < 60: del scores[name] print(scores)

执行结果:

{'Tom': 85, 'Lucy': 92}

这种方式适合需要根据键值对删除字典元素的场景。


Python3 字典 Python3 字典