Collections 是 Pyhton 便利的資料結構類型擴充模型 --- ### Defaultdict 在存取字典(dict)時,經常會需要先判斷 key 是否存在,再進行後續存取操作,使用上很不便利 ```python dd = {0: 1, 1: 2, 2: 3} ls = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] for k, v in enumerate(ls): if k not in dd: dd[k] = v else: dd[k] += v ``` 而若是將原生字典改成 defaultdict 來存取,在遇到 key 不存在時,它會自動產生一組預設值 ```python from collections import defaultdict # 必須由函式指定預設值 # 且不能設定初始元素 dd = defaultdict(lambda _: 0) ls = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] # {0: 1, 1: 2, 2: 3} for _ in range(3): dd[_] = _+1 for k, v in enumerate(ls): dd[k] += v ``` --- ### 參考資料 [collections雜談之一 ——— dict的key值存不存在乾我屁事](https://ithelp.ithome.com.tw/articles/10193094)