Есть ли стандартный класс для бесконечно вложенного defaultdict?

Кто-нибудь знает, есть ли в 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

Однако знает ли кто-нибудь о существовавшей ранее реализации этой идеи? Я пробовал поискать в Google, но не уверен, как это будет называться.

11
задан smci 6 January 2019 в 09:01
поделиться