defaultdict

Python имеет очень полезный набор структур данных в одном из своих модулей под названием collections. Одной из этих структур данных является словарь с значением по умолчанию — defaultdict.
При создании defaultdict мы можем передать лямбда-функцию, которая будет возвращать значение по умолчанию для отсутствующих элементов:
d = defaultdict(lambda: 'Такого элемента не существует')
d['Anna'] = 10
d['Bob'] = 9

print(d['Bob'])  # 9
print(d[999])    # Такого элемента не существует
Здесь Anna и Bob добавлены в ключи словаря, но 999 отсутствует, поэтому программа выводит Такого элемента не существует.
Это особенно полезно при работе со списками в качестве значений:
grades = defaultdict(lambda: [])
grades['Anna'].append(10)
grades['Anna'].append(9)
grades['Bob'].append(8)
grades['Bob'].append(9)

print(grades['Bob'])  # [8, 9]
print(grades[999])    # []

Задача

Даны результаты n футбольных матчей между командами и их соперниками. Вам нужно определить количество матчей, которые сыграла каждая команда.
Первая строка ввода содержит одно целое число n — количество матчей. Следующие n строк содержат названия команд, сыгравших друг против друга, разделенные дефисом (-). Следующая строка содержит имена клубов, разделенные запятыми (,), для которых программа должна вывести количество сыгранных матчей.
Программа должна вывести через пробел количество матчей для каждой из команд, указанных в последней строке ввода.
Ввод
Вывод
3 Real Madrid-Barcelona Chelsea-Manchester United Arsenal-Barcelona Manchester United,Barcelona,Roma
1 2 0
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue