Класс
defaultdict для упрощения работы со словарями
Модуль collections в Python предоставляет специальный тип словаря, называемый
defaultdict. Он позволяет автоматически создавать значения для новых ключей, что значительно упрощает работу с словарями.
Для инициализации значения нового ключа в
defaultdict достаточно передать тип желаемого значения. В примере ниже мы указываем тип list для всех наших ключей, следовательно
from collections import defaultdict
# создание defaultdict, использующего list() в качестве значения по умолчанию
marks = defaultdict(list)
# добавление элементов в словарь
marks['Asya'].append(5)
marks['Asya'].append(4)
# обращение к несуществующему ключу
print(marks['Kate']) # выведет [], так как list() возвращает []
# обращаясь к несуществующему ключу John,
# получаем значение по умолчанию и сразу расширяем его списком [4, 5, 5, 4]
marks['John'].extend([4, 5, 5, 4])
marks['John'].append(3)
print(marks) # {'Asya': [5, 4], 'Kate': [], 'John': [4, 5, 5, 4, 3]}
по умолчанию все значения ключей будут являться пустыми списками. Причем обращение к новому ключу не вызывает ошибки
KeyError, а создает новую пару, где значением будет тот тип данных, который был передан при создании
defaultdictЕще больше подробностей про
defaultdict и практики по этой теме можно найти в курсе
Продвинутый python: заряди свои батарейки