通常の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
の方が楽ですね。