Sobes.tech
Junior — Middle
90

Wyjaśnij, czym różni się standardowy słownik w Pythonie od kolekcji defaultdict i w jakich przypadkach jest ona wygodniejsza w użyciu.

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