3.1 子元素视图
你可能已经知道,字典内部存储的是键值对。它有一些方法可以让我们访问这些数据:keys()、values() 和 items()。下面我会详细讲解它们。
重要! 这些方法返回的不是普通的元素列表,而是所谓的视图(view)。字典视图提供了字典中键、值和键值对的动态表示。字典修改时,这些视图会自动更新。
方法 keys()
keys() 方法返回字典中所有键的视图。结果是一个 dict_keys 对象,它支持迭代和类似集合的其他操作。
person = {"name": "Alice", "age": 25, "city": "New York"}
keys = person.keys()
print(keys) # dict_keys(['name', 'age', 'city'])
遍历键
for key in person.keys():
print(key)
# 输出: # name # age # city
方法 values()
values() 方法返回字典中所有值的视图。结果是一个 dict_values 对象,它也支持循环遍历。
person = {"name": "Alice", "age": 25, "city": "New York"}
values = person.values()
print(values) # dict_values(['Alice', 25, 'New York'])
遍历值
for value in person.values():
print(value)
# 输出: # Alice # 25 # New York
方法 items()
items() 方法返回字典中所有键值对的视图。结果是一个 dict_items 对象,它支持循环操作。
person = {"name": "Alice", "age": 25, "city": "New York"}
items = person.items()
print(items) # dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])
遍历键值对
for key, value in person.items():
print(f"{key}: {value}")
# 输出: # name: Alice # age: 25 # city: New York
3.2 动态更新
字典视图的一个重要特性是其动态更新。这意味着如果字典发生变化,视图会自动反映这些变化。
person = {"name": "Alice", "age": 25}
keys = person.keys()
print(keys) # dict_keys(['name', 'age'])
# 增加新元素
person["city"] = "New York"
print(keys) # dict_keys(['name', 'age', 'city'])
将视图转换为其他集合
可以将字典视图转换为其他集合类型,比如列表、集合或元组,以便执行其他操作。
person = {"name": "Alice", "age": 25, "city": "New York"}
# 将 keys() 转换为列表
keys_list = list(person.keys())
print(keys_list) # ['name', 'age', 'city']
# 将 values() 转换为集合
values_set = set(person.values())
print(values_set) # {'Alice', 25, 'New York'}
# 将 items() 转换为元组列表
items_list = list(person.items())
print(items_list) # [('name', 'Alice'), ('age', 25), ('city', 'New York')]
GO TO FULL VERSION