Pythonに無限にネスト可能な辞書の標準クラスがあるかどうか誰かが知っていますか?
私は自分自身がこのパターンを繰り返していることに気づいています:
d = defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
d['abc']['def']['xyz'] += 1
「別のレイヤー」(例d['abc']['def']['xyz']['wrt']
)を追加する場合は、defaultdictsの別のネストを定義する必要があります。
__getitem__
このパターンを一般化するために、次のネストされた辞書を自動的に作成するためにオーバーライドする単純なクラスを作成しました。
例えば
d = InfiniteDict(('count',0),('total',0))
d['abc']['def']['xyz'].count += 0.24
d['abc']['def']['xyz'].total += 1
d['abc']['def']['xyz']['wrt'].count += 0.143
d['abc']['def']['xyz']['wrt'].total += 1
しかし、このアイデアの既存の実装を知っている人はいますか?グーグルを試しましたが、これが何と呼ばれるかわかりません。