collections.defaultdict
Подкласс dict, который автоматически создаёт значение для отсутствующего ключа, вызывая фабрику default_factory.
Сигнатура
collections.defaultdict([default_factory[, ...]])При обращении к несуществующему ключу defaultdict вызывает фабрику без аргументов и сохраняет результат как значение. Это избавляет от проверок if key in d при группировке и накоплении.
from collections import defaultdict
groups = defaultdict(list)
for word in ['яблоко', 'арбуз', 'банан']:
groups[word[0]].append(word)
print(groups['я']) # ['яблоко']
print(dict(groups)) # {'я': ['яблоко'], 'а': ['арбуз'], 'б': ['банан']}
count = defaultdict(int)
for ch in 'aab':
count[ch] += 1
print(dict(count)) # {'a': 2, 'b': 1}