在Python中,字典(dict
)是一種用於儲存鍵值對(key-value pairs)的內建資料結構。字典的鍵(key)必須是唯一的,而值(value)則可以是任何資料型別。使用字典時,經常需要獲取(或查詢)與特定鍵相關聯的值。下面介紹幾種獲取字典中值的方法:
1. 直接透過鍵訪問
如果你知道鍵的確切名稱,可以直接使用鍵來獲取對應的值。如果鍵存在於字典中,Python將返回其對應的值;如果鍵不存在,則會丟擲一個KeyError
異常。
my_dict = {"name": "John", "age": 30, "city": "New York"}
# 獲取鍵 'name' 的值
print(my_dict["name"]) # 輸出: John
# 如果嘗試訪問不存在的鍵,將丟擲 KeyError
# print(my_dict['country']) # KeyError: 'country'
2. 使用get()
方法
- 為了避免
KeyError
,可以使用get()
方法。 get()
方法接受兩個引數:要查詢的鍵和可選的預設值(如果鍵不存在時返回)。- 如果鍵不存在,則返回預設值(預設為
None
)。
my_dict = {"name": "John", "age": 30, "city": "New York"}
# 使用 get() 方法獲取鍵 'name' 的值
print(my_dict.get("name")) # 輸出: John
# 如果鍵不存在,則返回 'Not Found'
print(my_dict.get("country", "Not Found")) # 輸出: Not Found
3. 遍歷字典
如果你想檢查字典中的所有鍵值對,可以使用迴圈遍歷字典。
my_dict = {"name": "John", "age": 30, "city": "New York"}
# 遍歷字典的鍵和值
for key, value in my_dict.items():
print(f"{key}: {value}")
# 只遍歷鍵
for key in my_dict.keys():
print(key)
# 只遍歷值
for value in my_dict.values():
print(value)
4. 檢查鍵是否存在
- 在嘗試訪問字典中的值之前,你也可以先檢查鍵是否存在。
- 這可以透過
in
關鍵字完成。
my_dict = {"name": "John", "age": 30, "city": "New York"}
# 檢查鍵 'name' 是否存在
if "name" in my_dict:
print(my_dict["name"]) # 輸出: John
else:
print("Key does not exist.")
以上是Python中獲取字典中值(或進行查詢)的幾種常見方法。每種方法都有其適用場景,你可以根據具體需求選擇最合適的方法。
5. 基於值獲取鍵
- 可以構建別名系統
def dict_find_key_from_value(dict_in, str_in):
"""基於value查詢字典的key"""
for key, value_list in dict_in.items():
if str_in in value_list:
return key
# 如果沒有找到匹配的字串,則返回None
# 走到此處還沒返回說明,沒有
return None
- 示例:
# 構建別名系統的字典,值為列表
alias_dict = {
'nick': ['Nicholas', 'Nickolas'],
'sarah': ['Sarah', 'Sara'],
'tommy': ['Thomas', 'Tommy'],
'lily': ['Lillian', 'Lily-Anne']
}