Python 字典型 get 方法完整指南|錯誤處理與應用範例

1. Python 字典型(dict)的基礎

Python 的字典型(dict)是一種由鍵值對(key-value pair)組成的資料結構,與列表(list)或元組(tuple)不同,它允許透過鍵來高效存取特定的資料。例如,在管理商品資訊或使用者資訊時,字典型資料結構非常實用。

字典型的基本操作

要建立字典,可以使用大括號 {},並以逗號分隔每個鍵值對。

my_dict = {"apple": 100, "banana": 200, "orange": 150}

例如,上述範例中,”apple” 作為鍵對應的值為 100。若要存取字典內的元素,可以使用鍵來查詢:

print(my_dict["apple"])  # 結果: 100

[] 方式存取鍵值

使用鍵來存取字典中的值時,若鍵不存在,則會拋出 KeyError

print(my_dict["grape"])  # KeyError: 'grape'

當發生這類錯誤時,程式將會中斷執行,因此需要適當的錯誤處理機制。

2. get 方法的基礎

get 方法是一個實用的函式,當鍵不存在時,它不會拋出 KeyError,而是回傳 None 或預設值。這可以幫助程式避免錯誤,確保執行的安全性。

get 方法的使用方式

使用 get 方法時,若鍵存在,則會回傳對應的值;若鍵不存在,則回傳 None

my_dict = {"apple": 100, "banana": 200, "orange": 150}

# 當鍵存在
print(my_dict.get("apple"))  # 100

# 當鍵不存在
print(my_dict.get("grape"))  # None

設定預設值

get 方法允許指定當鍵不存在時的預設值,這使程式更加靈活。

print(my_dict.get("grape", 0))  # 結果: 0

透過設定預設值,可以確保程式不會因為缺少鍵值而發生意外錯誤,提升穩定性。

3. get 方法與 [] 存取的差異

get 方法與 [] 存取的主要差異在於錯誤處理方式。使用 [] 存取時,若鍵不存在,會拋出 KeyError;而 get 方法則會回傳 None 或預設值,避免錯誤發生。

錯誤處理的差異

以下範例展示 [] 存取與 get 方法的不同之處。

my_dict = {"apple": 100, "banana": 200}

# 使用 [] 存取(可能會拋出錯誤)
try:
    print(my_dict["grape"])
except KeyError:
    print("鍵不存在")

# 使用 get 方法存取(安全)
print(my_dict.get("grape", "鍵不存在"))

使用 [] 存取時,若鍵不存在,則需要使用 try-except 來處理錯誤;但 get 方法則能直接回傳預設值,讓程式更簡潔且避免錯誤發生。此外,get 方法只需執行一次存取,效能表現也較佳。

4. get 方法的應用範例

get 方法在實務應用中非常實用,特別是在處理 API 回應或使用者輸入時,能有效避免 KeyError,確保程式的穩定性。

API 回應的處理

當從 API 接收資料時,某些鍵可能不存在,這時可以使用 get 方法來確保程式不會因為缺少資料而發生錯誤。

response = {"status": "success", "data": {"name": "Alice"}}

email = response.get("data", {}).get("email", "尚未註冊電子郵件")
print(email)  # 結果: 尚未註冊電子郵件

此範例使用 get 方法來避免 KeyError,即使 data 鍵不存在,也能安全存取 email,並回傳預設訊息。

字典的初始化與計數

get 方法在處理計數或初始化字典時也非常有用。例如,當需要計算物品的出現次數時,可以使用 get 方法來簡化計算。

counts = {}
items = ["apple", "banana", "apple", "orange"]

for item in items:
    counts[item] = counts.get(item, 0) + 1

print(counts)  # {'apple': 2, 'banana': 1, 'orange': 1}

在此範例中,若鍵不存在,get 方法會回傳預設值 0,從而確保計數功能正常運作,並避免 KeyError

侍エンジニア塾

5. 總結

Python 的 get 方法是處理字典時非常重要的工具,能夠簡化錯誤處理並提高程式的可讀性與穩定性。特別是在處理外部資料(如 API 回應)或使用者輸入時,使用 get 方法可以有效避免 KeyError,並允許設定預設值來確保程式正常運行。

以下是 get 方法的主要優勢:

  • 避免 KeyError,提高程式的健壯性
  • 允許設定預設值,使程式更靈活
  • 減少 try-except 的使用,讓程式碼更簡潔
  • 在計數與資料處理中提供更簡單的方法

透過活用 get 方法,我們可以撰寫更安全且高效的 Python 程式,避免潛在的錯誤,並提升程式的可維護性。

現在就試試在您的 Python 專案中使用 get 方法,讓程式碼更穩定且靈活!