ディクショナリでいくつかのルックアップを実行しようとしていますが、その一部はサブディクショナリ ( d['a'], d['b']['c']['d']['e']
) へのルックアップである可能性があります。KeyError
最初または n 番目のディクショナリに関係なく、ルックアップ プロセスの任意の時点でデフォルト値を返したいと思います。最終的な目標は、戻り値を新しいフラット化されたディクショナリに入れることです。
私の現在よりもこれを行う簡単な方法はありますか:
e = {}
try:
e['a'] = d['a']
except KeyError:
e['a'] = 0
try:
e['d'] = d['b']['c']['d']
except KeyError:
e['d'] = 0
...and so on
私はいくつかの問題について考え、何らかの再帰を使用.get()
または使用defaultdict()
または使用することを検討しましたが、解決策を思い付くことができませんでした。助けてくれてありがとう!