Я думаю, что лучше создавать объекты.
В файле Python:
class Team():
def __init__(self, name):
self.name = name
def __str__(self):
return str(self.name)
class Game():
def __init__(self, team_1, team_2, result):
self.team_1 = team_1
self.team_2 = team_2
self.result = result
def __str__(self):
return f"{self.team_1} vs {self.team_2}: {self.result}"
# some tests
if __name__ == "__main__":
red, gold, blue = Team("red"), Team("gold"), Team("blue")
red_blue = Game(red, blue, "v1")
red_gold = Game(red, gold, "v2")
blue_gold = Game(blue, gold, "v3")
print(red_blue, red_gold, blue_gold, sep="\n")
Если вы запустите файл, он выдаст:
red vs blue: v1
red vs gold: v2
blue vs gold: v3
РЕДАКТИРОВАТЬ: class League
# add this code in the same module that the previous one
class League():
def __init__(self, name):
self.name = name
self.teams = []
self.games = []
def add_teams(self, *teams):
# *teams is a sequence of Team instances
for team in teams:
self.teams.append(team)
def add_games(self, *games):
# *games is a sequence of Game instances
for game in games:
self.games.append(game)
def get_game_by_team(self, team):
print(f"Results for all games of {team} in {self.name} league:")
for game in self.games:
if team == game.team_1.name or team == game.team_2.name:
print(game)
if __name__ == "__main__":
league = League("master")
league.add_teams(red, gold, blue)
league.add_games(red_blue, red_gold, blue_gold)
league.get_game_by_team("red")
league.get_game_by_team("blue")
league.get_game_by_team("gold")
Вывод:
Results for all games of red in master league:
red vs blue: v1
red vs gold: v2
Results for all games of blue in master league:
red vs blue: v1
blue vs gold: v3
Results for all games of gold in master league:
red vs gold: v2
blue vs gold: v3
Это ответ на ваш вопрос?
Если вы хотите отобразить более наглядную таблицу, как вы видите в своемПервый вопрос, это должно быть более эффективным, чтобы попытаться сделать графический интерфейс.