通常のdictとの違いは?
Pythonのdefaultdictを使ってみたので紹介します。
普通のdictの場合は、存在しないキーはエラーになります。
しかし、defaultdictを使えば、存在チェックが不要になる、というのがメリットです。
defaultdictは、collectionsモジュールのクラス。
引数にlistやintなどを指定することで、デフォルトの値を提供してくれます。ちなみにlambda関数や通常の関数を渡してあげることも可能です。
公式ドキュメントはこちら。
サンプルコード
from collections import defaultdict
# リストをデフォルト値とする
d = defaultdict(list)
# キー'fruits'に対して値を追加
d['fruits'].append('apple')
d['fruits'].append('banana')
# キー'vegetables'に対して値を追加
d['vegetables'].append('carrot')
for key, value in d.items():
print(f'{key}: {value}')
# 出力結果
# fruits: ['apple', 'banana']
# vegetables: ['carrot']
上記の場合、d = defaultdict(list)をd = {}にすると、KeyError: 'fruits'になることがわかります。事前チェックが不要な場合はdefaultdictの方が楽ですね。