Python: Статистика матчей по командам
Python: Декларативное программирование 1 сообщениеsrc/solution.py
Предположим, что нам нужно анализировать результаты матчей "команда против команды" по некоторому виду спорта. Для простоты будем считать, что "ничья" в этом виде спорта не предусмотрена и каждый матч описывается парой (кортежем) строк, где первая именует победителя, а вторая проигравшего. И сами с собой команды пусть тоже не играют :)
Вам предстоит реализовать функцию wins_by_team()
, которая должна принимать перечень (iterable) матчей в качестве единственного аргумента и возвращать словарь, ключами которого выступали бы имена команд, а значениями множества названий команд которых данная команда-ключ обыграла хотя бы раз.
from solution import wins_by_team
wins_by_team([])
# {}
wins_by_team([("A", "B")])
# {'A': {'B'}}
wins_by_team([("A", "B"), ("B", "A")])
# {'A': {'B'}, 'B': {'A'}}
wins_by_team(
[("A", "B"), ("B", "C"), ("A", "C")]
) == {'A': {'B', 'C'}, 'B': {'C'}}
# True
Это задание можно выполнить в процедурном стиле с помощью defaultdict
или dict.setdefault
и изменяемых множеств, однако попробуйте описать декларативное решение с использованием comprehensions!
Для полного доступа к испытанию нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.