CodeGym /课程 /Python SELF ZH /字典视图

字典视图

Python SELF ZH
第 11 级 , 课程 3
可用

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')]
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION