Программа таблица результатов матчей
Напишите программу, которая принимает на стандартный вход список игр футбольных команд с результатом матча и выводит на стандартный вывод сводную таблицу результатов всех матчей.
За победу команде начисляется 3 очка, за поражение — 0, за ничью — 1.
Формат ввода следующий:
В первой строке указано целое число n — количество завершенных игр.
После этого идет n строк, в которых записаны результаты игры в следующем формате:
Первая_команда;Забито_первой_командой;Вторая_команда;Забито_второй_командой
Вывод программы необходимо оформить следующим образом:
Команда:Всего_игр Побед Ничьих Поражений Всего_очков
Конкретный пример ввода-вывода приведён ниже.
Порядок вывода команд произвольный.
Sample Input:
3
Спартак;9;Зенит;10
Локомотив;12;Зенит;3
Спартак;8;Локомотив;15
Sample Output:
Спартак:2 0 0 2 0
Зенит:2 1 0 1 3
Локомотив:2 2 0 0 6
Мой код:
n = int(input())
game = [] # формируем список состоявшихся игр
team = set() # множество команд
while n > 0:
str = input().split(';')
team.update(set(str[::2]))
game.append(str)
n -= 1
# формируем турнирную таблицу
tbl = {}
for i in team:
tbl[i] = [0, 0, 0, 0, 0]
for game_one in game:
# кол-во проведенных игр
tbl[game_one[0]][0] += 1
tbl[game_one[2]][0] += 1
if game_one[1] < game_one[3]:
tbl[game_one[2]][3] += 1 # 1 команда проиграла
tbl[game_one[0]][1] += 1 # 2 команда выиграла
elif game_one[1] > game_one[3]:
tbl[game_one[2]][1] += 1 # 1 команда выиграла
tbl[game_one[0]][3] += 1 # 2 команда проиграла
elif game_one[1] < game_one[3]:
tbl[game_one[2]][3] += 1 # 1 команда проиграла
tbl[game_one[0]][1] += 1 # 2 команда выиграла
for k in tbl:
tbl[k][4] = tbl[k][1] * 3 + tbl[k][2] * 1
print(k, end="")
print(":", end="")
for i in tbl[k]:
print(i, end=" ")
print()
Answers & Comments
попыталась исправить твой код, думаю теперь правильно
n = int(input())
games = [] # формируем список состоявшихся игр
teams = set() # множество команд
while n > 0:
line = input().split(';')
teams.update(set(line[::2]))
games.append(line)
n -= 1
# формируем турнирную таблицу
table = {}
for team in teams:
table[team] = [0, 0, 0, 0, 0]
for game in games:
team1, goals1, team2, goals2 = game
# кол-во проведенных игр
table[team1][0] += 1
table[team2][0] += 1
if goals1 > goals2:
table[team1][1] += 1 # 1 команда выиграла
table[team1][4] += 3 # за победу начисляем 3 очка
table[team2][3] += 1 # 2 команда проиграла
elif goals1 < goals2:
table[team2][1] += 1 # 2 команда выиграла
table[team2][4] += 3 # за победу начисляем 3 очка
table[team1][3] += 1 # 1 команда проиграла
else:
table[team1][2] += 1 # 1 команда сыграла в ничью
table[team2][2] += 1 # 2 команда сыграла в ничью
table[team1][4] += 1 # за ничью начисляем 1 очко
table[team2][4] += 1 # за ничью начисляем 1 очко
for team in table:
print(team, end="")
print(":", end="")
for i in table[team]:
print(i, end=" ")
print()
n = int(input())
game = []
team = set()
while n > 0:
str = input().split(';')
team.update(set(str[::2]))
game.append(str)
n -= 1
tbl = {}
for i in team:
tbl[i] = [0, 0, 0, 0, 0]
for game_one in game:
if game_one[1] > game_one[2]:
tbl[game_one][1] += 1
tbl[game_one][3] += 3
tbl[game_one[4]][4] += 1
elif game_one[1] < game_one[2]:
tbl[game_one[4]][1] += 1
tbl[game_one[4]][3] += 3
tbl[game_one][4] += 1
else:
tbl[game_one][2] += 1
tbl[game_one][3] += 1
tbl[game_one[4]][2] += 1
tbl[game_one[4]][3] += 1
for k in tbl:
print(k, end="")
print(":", end="")
for i in tbl[k]:
print(i, end=" ")
print()