BLACK FRIDAY

осталось 3 дня

Скидка 10% и подарок на выбор — при покупке одной программы
При покупке двух программ  — вторая со скидкой 50%

Python: Статистика матчей по командам

Python: Декларативное программирование 2 сообщения
Обновлено: 14 сент., 14:23
129
Студентов
86%
Завершения

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!

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов