Python имеет очень полезный набор структур данных в одном из своих модулей под названием collections. Одной из этих структур данных является словарь с значением по умолчанию — defaultdict.
При создании defaultdict мы можем передать лямбда-функцию, которая будет возвращать значение по умолчанию для отсутствующих элементов:
d = defaultdict(lambda: 'Такого элемента не существует')
d['Anna'] = 10
d['Bob'] = 9
print(d['Bob']) # 9
print(d[999]) # Такого элемента не существует
Здесь Anna и Bob добавлены в ключи словаря, но 999 отсутствует, поэтому программа выводит Такого элемента не существует.
Это особенно полезно при работе со списками в качестве значений:
Даны результаты n футбольных матчей между командами и их соперниками. Вам нужно определить количество матчей, которые сыграла каждая команда.
Первая строка ввода содержит одно целое число n — количество матчей. Следующие n строк содержат названия команд, сыгравших друг против друга, разделенные дефисом (-). Следующая строка содержит имена клубов, разделенные запятыми (,), для которых программа должна вывести количество сыгранных матчей.
Программа должна вывести через пробел количество матчей для каждой из команд, указанных в последней строке ввода.
Ввод
Вывод
3
Real Madrid-Barcelona
Chelsea-Manchester United
Arsenal-Barcelona
Manchester United,Barcelona,Roma