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}
← Все записи: Модули collections и functools
Поддержать проект