🖥

#python の defaultdict を利用して KeyError を防ぎたい

2019/04/15に公開

import

>>> from collections import defaultdict

int

どんなキーでもデフォルト値が0のディクショナリを作る

>>> a = defaultdict(int)
>>> a
defaultdict(<class 'int'>, {})
>>> a["1"]
0
>>> a[1]
0
>>> a["a"]
0
>>> a["b"]
0
>>> a["c"]
0
>>> a[0]
0
>>> a[1]
0
>>> a[2]
0
>>> a[1]
0

str

どんなキーでもデフォルトが空白文字列の辞書を作る

>>> a = defaultdict(str)
>>> a[0]
''
>>> a[1]
''
>>> a['some']
''
>>> a['what']
''

dict

デフォルト値がディクショナリのディクショナリ

>>> a = defaultdict(dict)
>>> a[0]
{}
>>> a['some']
{}

nested

デフォルト値が defaultdict の defaultdict

>>> a = defaultdict(lambda: defaultdict(int))
>>> a[0]
defaultdict(<class 'int'>, {})
>>> a[0][0]
0
>>> a["a"]["b"]
0

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/1288

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-04-15

Discussion