defaultdict 是 Python 中 collections 模組提供的一種字典類型,
它是 dict 的子類,專門用來處理缺失鍵的情況。
與普通字典相比,defaultdict 的主要特點是當你訪問一個不存在的鍵時,
它會自動為該鍵創建一個預設值,而不會引發 KeyError。
自動創建缺失鍵: 當你訪問一個不存在的鍵時,defaultdict 會自動使用你指定的工廠函數(如 list, int, str 等)來創建該鍵的值。
可設置的預設值: 在創建 defaultdict 時,你可以指定一個工廠函數,這個函數會被調用以生成缺失鍵的預設值。
from collections import defaultdict
# 創建一個 defaultdict,預設值為空列表
dd_list = defaultdict(list)
# 對於不存在的鍵,自動創建一個空列表並添加元素
dd_list['fruits'].append('apple')
dd_list['fruits'].append('banana')
print(dd_list) # 輸出: defaultdict(<class 'list'>, {'fruits': ['apple', 'banana']})
# 創建一個 defaultdict,預設值為整數(0)
dd_int = defaultdict(int)
# 對於不存在的鍵,自動創建並初始化為0
dd_int['a'] += 1
dd_int['b'] += 2
print(dd_int) # 輸出: defaultdict(<class 'int'>, {'a': 1, 'b': 2})
dd = defaultdict(list)
dd['key'].append(1)
print(dd) # 輸出: defaultdict(<class 'list'>, {'key': [1]})
dd = defaultdict(int)
dd['count'] += 1
print(dd) # 輸出: defaultdict(<class 'int'>, {'count': 1})
def custom_default():
return "default_value"
dd = defaultdict(custom_default)
print(dd['missing_key']) # 輸出: default_value
defaultdict 是一個非常有用的工具,可以簡化處理缺失鍵的代碼,使代碼更加簡潔和易讀。它特別適合用於計數、分組等需要動態添加鍵值對的場