Как определить многомерный словарь со значением по умолчанию в Python?

Я хотел бы изменить следующее определение dict:

class Vividict(dict):
      def __missing__(self, key):
           value = self[key] = type(self)()
           return value

Чтобы иметь возможность использовать его следующим образом:

totals[year][month] += amount    

2 ответа

Использование collections.defaultdict с collections.Counter,

from collections import defaultdict, Counter

d = defaultdict(Counter)
d['year']['month'] += 1

В конце я использовал счетчик с кортежем в качестве ключа.

Другие вопросы по тегам