collections.defaultdict
Создаёт словарь, который при обращении к отсутствующему ключу сам добавляет его со значением по умолчанию.
Python 3.13
collections.defaultdict([default_factory])Параметры
- default_factoryCallable | Noneнеобязательный
- Функция без аргументов, которая создаёт значение по умолчанию, например list или int; при None отсутствующий ключ вызывает KeyError.
Возвращаемое значение
Объект defaultdict — подкласс словаря.
Примеры
Группировка слов по первой букве
Python 3.13
from collections import defaultdict
groups = defaultdict(list)
for word in ['apple', 'avocado', 'banana']:
groups[word[0]].append(word)
print(dict(groups)){'a': ['apple', 'avocado'], 'b': ['banana']}Подсчёт букв с нулём по умолчанию
Python 3.13
from collections import defaultdict
counts = defaultdict(int)
for letter in 'hello':
counts[letter] += 1
print(counts['l'], counts['z'])2 0
Подробности
Передавайте саму функцию без скобок: defaultdict(list), а не defaultdict([]). Ключ добавляется только при обращении через d[key], а get() и in его не добавляют.
