Не могу понять где ошибка в последней строке

import random

first_team = [round(random.randint(5, 10), 2) for i in range(20)]
second_team = [round(random.randint(5, 10), 2) for i in range(20)]
winners = [(first_team[i_team] if first_team[i_team] > second_team[i_team] else second_team[i_team] for i_team in range(20))]
print('Первая команда:', first_team)
print('Вторая команда: ', second_team)
print('Победители тура: ', winners)

Ответы (1 шт):

Автор решения: Алексей Р

Наверное, несколько тяжеловато для новичков, но тем не менее предложу решение.

  1. Создание обоих списков можно сделать в цикле одной строкой.
  2. Вместо randint() удобнее использовать choices(), который возвращает список указанной длины из элементов заданной последовательности, выбранных случайным образом.
  3. В списке победителей указываются метка команды-победителя (F - first_team, S - second_team или N при ничейном результате) и максимальный результат в туре.
import random

first_team, second_team = (random.choices(range(5, 11), k=20) for _ in (1, 2))
winners = [f"{('FN', 'SS')[a < b][a == b]}:{max(a,b)}" for a, b in zip(first_team, second_team)]

print('Первая команда:', first_team)
print('Вторая команда:', second_team)
print('Победители тура:', winners)
Первая команда: [10, 7, 6, 7, 5, 5, 9, 10, 10, 5, 5, 9, 8, 9, 9, 6, 9, 8, 10, 10]
Вторая команда: [9, 5, 6, 7, 9, 9, 9, 10, 9, 9, 9, 5, 10, 9, 5, 8, 9, 9, 8, 9]
Победители тура: ['F:10', 'F:7', 'N:6', 'N:7', 'S:9', 'S:9', 'N:9', 'N:10', 'F:10', 'S:9', 'S:9', 'F:9', 'S:10', 'N:9', 'F:9', 'S:8', 'N:9', 'S:9', 'F:10', 'F:10']
→ Ссылка