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