Методы Python для определения победителя футбольного турнира по общему количеству голов

Вот несколько методов на Python, позволяющих определить победителя футбольного турнира по команде, забившей наибольшее количество голов:

Метод 1: использование словаря командных результатов

def determine_winner(scores):
    team_scores = {}
    for match in scores:
        team1, team2, goals1, goals2 = match
        team_scores[team1] = team_scores.get(team1, 0) + goals1
        team_scores[team2] = team_scores.get(team2, 0) + goals2
    winner = max(team_scores, key=team_scores.get)
    return winner
# Example usage
tournament_scores = [
    ("Team A", "Team B", 2, 1),
    ("Team C", "Team D", 3, 2),
    ("Team A", "Team C", 1, 0),
    ("Team B", "Team D", 2, 2),
    ("Team A", "Team D", 3, 1),
    ("Team B", "Team C", 0, 1)
]
tournament_winner = determine_winner(tournament_scores)
print("The winner of the tournament is:", tournament_winner)

Выход:

The winner of the tournament is: Team A

Метод 2: использование DefaultDict

from collections import defaultdict
def determine_winner(scores):
    team_scores = defaultdict(int)
    for match in scores:
        team1, team2, goals1, goals2 = match
        team_scores[team1] += goals1
        team_scores[team2] += goals2
    winner = max(team_scores, key=team_scores.get)
    return winner
# Example usage
tournament_scores = [
    ("Team A", "Team B", 2, 1),
    ("Team C", "Team D", 3, 2),
    ("Team A", "Team C", 1, 0),
    ("Team B", "Team D", 2, 2),
    ("Team A", "Team D", 3, 1),
    ("Team B", "Team C", 0, 1)
]
tournament_winner = determine_winner(tournament_scores)
print("The winner of the tournament is:", tournament_winner)

Выход:

The winner of the tournament is: Team A

Метод 3: использование счетчика

from collections import Counter
def determine_winner(scores):
    team_scores = Counter()
    for match in scores:
        team1, team2, goals1, goals2 = match
        team_scores[team1] += goals1
        team_scores[team2] += goals2
    winner = team_scores.most_common(1)[0][0]
    return winner
# Example usage
tournament_scores = [
    ("Team A", "Team B", 2, 1),
    ("Team C", "Team D", 3, 2),
    ("Team A", "Team C", 1, 0),
    ("Team B", "Team D", 2, 2),
    ("Team A", "Team D", 3, 1),
    ("Team B", "Team C", 0, 1)
]
tournament_winner = determine_winner(tournament_scores)
print("The winner of the tournament is:", tournament_winner)

Выход:

The winner of the tournament is: Team A