Python items() 语法
items() 是字典的一个方法,它返回的是字典的一个视图对象,该对象每一项是由字典的 “(键, 值)” 组成的元组。
语法:
dict.items()说明:
items() 方法不接收任何参数。
对于 items() 方法,小伙伴们要清楚以下几点。
- 字典视图对象是动态的。也就是说,如果字典的键发生变化(比如添加、删除或修改键),则 items() 返回的视图也会自动更新,而无需重新调用方法。
- 虽然字典视图对象看起来像一个列表,但它不是一个列表。我们不能对其进行索引访问,也不能直接对其进行切片。如果需要列表形式的键值对(元组),可以使用 list() 函数将其转换为列表。
- items() 返回的视图对象支持集合的交集、并集等运算,但前提是字典中的所有值都必须是可哈希的(例如数字、字符串等)。如果字典中包含列表、字典等不可哈希的值,进行集合运算时会引发异常。
字典视图对象
字典的 keys()、values() 和 items() 这 3 种方法返回的结果都不是列表,而是一种视图(view),也叫做字典视图对象。视图在字典内容变化时会动态更新,这就是需要使用 list() 函数来将结果转换为列表的原因。另外,该视图本质上是一个可迭代对象,因此我们可以使用 for 循环来迭代,并且可以使用 in 或 not in 来检查成员的资格。
Python items() 摘要
| 使用频率 | 中 |
|---|---|
| 修改原字典 | 否 |
| 官方文档 | 查看 |
| 相关方法 | keys()、values() |
Python items() 基本使用
接下来,我们通过几个简单的例子来讲解一下 Python items() 方法是如何使用的。
示例 1:items() 基本用法
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = students.items()
print(result)运行结果如下。
dict_items([('Jack', 1001), ('Lucy', 1002), ('Tony', 1003)])分析:
字典的视图对象,本质上是一个可迭代对象。我们可以使用 list() 函数将其转换为一个列表。这里如果将 result = students.items() 改为 result = list(students.items()),再次运行后结果如下:
[('Jack', 1001), ('Lucy', 1002), ('Tony', 1003)]所谓的视图对象,类似于 SQL 视图。修改原字典中的数据,那么视图对象的数据也会即时改变。请看下面例子。
示例 2:修改原字典
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = students.items()
students['Jack'] = 6666
print(students)
print(result)运行结果如下。
{'Jack': 6666, 'Lucy': 1002, 'Tony': 1003}
dict_items([('Jack', 6666), ('Lucy', 1002), ('Tony', 1003)])示例 3:遍历所有键值对
config = {'theme': 'dark', 'font_size': 12, 'language': 'en'}
for key, value in config.items():
print(f'配置项:{key},值:{value}')运行结果如下。
配置项:theme,值:dark
配置项:font_size,值:12
配置项:language,值:en分析:
我们可以使用 for 循环直接遍历 items() 返回的视图对象,这样可以同时获取键和值,而无需先将视图对象额外转换为其他对象,适用于高效处理数据。
示例 4:成员资格检查
d = {'a': 1, 'b': 2}
print(('a', 1) in d.items())运行结果如下。
True