Back to questions
Junior — Middle
61
Объясните, чем отличается стандартный словарь в Python от коллекции defaultdict и в каких случаях она удобнее использовать?
Answer from AI
sobes.tech AI
Стандартный словарь (dict) в Python при обращении к несуществующему ключу вызывает исключение KeyError.
defaultdict из модуля collections — это подкласс словаря, который позволяет автоматически создавать значение по умолчанию для отсутствующих ключей, используя функцию-инициализатор.
Пример:
from collections import defaultdict
# Обычный dict
d = {}
# d['key'] # KeyError
# defaultdict с int (по умолчанию 0)
dd = defaultdict(int)
print(dd['key']) # Выведет 0, ключ 'key' автоматически добавлен
# defaultdict с list
dd_list = defaultdict(list)
dd_list['key'].append(1)
print(dd_list['key']) # [1]
defaultdict удобен, когда нужно собирать данные по ключам без предварительной проверки наличия ключа, например, для подсчёта или группировки.