Sobes.tech
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 удобен, когда нужно собирать данные по ключам без предварительной проверки наличия ключа, например, для подсчёта или группировки.