defaultdictcollections.defaultdict — это подкласс встроенного словаря dict, который автоматически предоставляет значение по умолчанию при обращении к несуществующему ключу, вместо того чтобы выбросить KeyError.
Ты инициализируешь его с помощью фабричной функции — вызываемого объекта, который возвращает значение по умолчанию для любого отсутствующего ключа:
from collections import defaultdict
d = defaultdict(list)
d['key'].append(1) # Автоматически создаёт пустой список для 'key'
print(d) # defaultdict(<class 'list'>, {'key': [1]})
Когда ты обращаешься к d['key'] и ключа 'key' не существует, defaultdict автоматически вызывает list() и присваивает результат как значение.
list — значение по умолчанию это пустой список []int — значение по умолчанию это 0set — значение по умолчанию это пустое множество set()Без defaultdict ты должен вручную обрабатывать отсутствующие ключи:
# Обычный dict — требует явной инициализации
d = {}
if 'key' not in d:
d['key'] = []
d['key'].append(1)
С defaultdict это сокращается до одной строки, избавляя от лишних проверок и делая код чище и менее подверженным ошибкам.
defaultdict особенно полезен, когда:
Когда ты обращаешься к несуществующему ключу в defaultdict, factory функция вызывается автоматически и возвращённое значение вставляется в словарь.
Новый — ещё не проверен сообществом
Вы