辞書に存在しないキーで操作するときのベストプラクティスをメモ。get
を使う方法3が一番簡潔。
辞書で個数をカウントするようなケースを考える。
counters = { "A": 1, "B": 0, }
新規のキーに対してカウントを増やすには、まずキーがあるかどうか調べ、なければキーをデフォルトのカウント数0で追加し、カウントを1つ増やす必要がある。
方法1
in
句によってキーの存在確認を行う方法。
key = "C" if key in counters: count = counters[key] else: count = 0 counters[key] = count + 1 # {'A': 1, 'B': 0, 'C': 1}
方法2
try, except
によってキーの存在確認を行う方法。
key = "C" try: count = counters[key] except KeyError: count = 0 counters[key] = count + 1 # {'A': 1, 'B': 0, 'C': 1}
方法3
get
を使う方法。get
の第二引数はキーが存在しなかった時に返すデフォルト値。
key = "C" count = counters.get(key, 0) counters[key] = count + 1 # {'A': 1, 'B': 0, 'C': 1}
参考
リンク