今天第一次碰到defaultdict這個名詞,不懂它的意思,看了幾篇博文,大概明白了,寫一下自己的了解。
先來一段代碼(Python 2.7.12)
>>> from collections import defaultdict
>>> d1 = dict()
>>> d2 = defaultdict(list)
>>> d1['a']
Traceback (most recent call last):
File "<stdin>", line , in <module>
KeyError: 'a'
>>> d2['a']
[]
defaultdict解決了使用dict時的一個問題:
如果使用dict[key]取得字典中的key對應values時,key不存在,會報錯KeyError。
python中defaultdict的用法詳解 - 腳本之家:defaultdict在dict的基礎上添加了一個missing(key)方法, 在調用一個不存的key的時候, defaultdict會調用
__missing__
, 傳回一個根據default_factory參數的預設值, 是以不會傳回Keyerror.
參考文獻:
1. 關于defaultdict的一篇簡短的解讀,見python中defaultdict的用法詳解 - 腳本之家;
2. 講解了defaultdict的由來,解決了什麼問題,見了解 Python 語言中的 defaultdict;
3. 關于defaultdict的完整内容,見defaultdict - Python官方文檔;