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