Что нужно сделать
Мы хотим протестировать работу электронной таблицы для участников некоторых соревнований. Есть два списка (то есть две команды) по 20 участников в каждом. В этих списках хранятся очки каждого участника (это вещественные числа с двумя знаками после точки, например 4.03). Участник одной команды соревнуется с участником другой команды под таким же номером. То есть первый соревнуется с первым, второй — со вторым и так далее.
Напишите программу, которая генерирует два списка участников (по 20 элементов) из случайных вещественных чисел (от 5 до 10). Для этого найдите подходящую функцию из модуля random. Затем сгенерируйте третий список, в котором окажутся только победители из каждой пары.
Пример:
Первая команда: [7.86, 6.76, 9.97, 9.08, 5.45, 6.9, 8.65, 5.17, 8.17, 5.06, 7.56, 7.1, 7.18, 8.25, 5.53, 7.95, 8.91, 7.11, 8.29, 9.52]
Вторая команда: [7.13, 5.7, 8.89, 5.36, 5.62, 9.46, 5.82, 8.67, 8.41, 7.0, 5.31, 7.8, 9.93, 7.76, 7.4, 8.26, 7.94, 5.71, 7.89, 7.77]
Победители тура: [7.86, 6.76, 9.97, 9.08, 5.62, 9.46, 8.65, 8.67, 8.41, 7.0, 7.56, 7.8, 9.93, 8.25, 7.4, 8.26, 8.91, 7.11, 8.29, 9.52]
ПРИМЕЧАНИЕ ОТ ПРЕПОДАВАТЕЛЯ:
У нас модуль про List comprehensions, нужно для тренировки использовать List comprehensions для решения задачи.
Python
Задача 3. Случайные соревнования
Циклы, повторения кода, округления... суеты много, толку мало.
from random import randint
parts = tuple(map(list, map(lambda _: map(100..__rtruediv__, map(randint, (500,) * 20, (1000,) * 20)), (0, 0))))
print(*parts, list(map(max, zip(*parts))), sep = '\n')
Ваша задача может быть решена с помощью генератора списков (list comprehension) и модуля random. Вот пример кода, который решает вашу задачу:
С помощью генератора списков мы создаём два списка из 20 случайных чисел для каждой команды.
Потом мы создаём список победителей с использованием функции `zip(team1, team2)`, которая объединяет два списка в список пар. В каждой паре мы выбираем максимальное значение с помощью функции `max()`.
import random
# генерируем списки с оценками для команд
team1 = [round(random.uniform(5, 10), 2) for _ in range(20)]
team2 = [round(random.uniform(5, 10), 2) for _ in range(20)]
# генерируем список победителей
winners = [max(pair) for pair in zip(team1, team2)]
# выводим результаты
print("Первая команда:", team1)
print("Вторая команда:", team2)
print("Победители тура:", winners)
В этом коде функция `random.uniform(5, 10)` генерирует случайное вещественное число от 5 до 10. Функция `round(..., 2)` округляет это число до двух знаков после запятой. С помощью генератора списков мы создаём два списка из 20 случайных чисел для каждой команды.
Потом мы создаём список победителей с использованием функции `zip(team1, team2)`, которая объединяет два списка в список пар. В каждой паре мы выбираем максимальное значение с помощью функции `max()`.
это можно и самому сделать, сложного ничего нет
from random impor randint
spis_1=[randint(5.00,10) for s in range(20)]
spis_2=[randint(5.00,10) for s in range(20)]
spis_3=[]
for s in range(20)
spis_3.append(spis_1[s] if spis_1[s]> spis_2[s] else spis_2[s])
print(spis_3)
Похожие вопросы
- Помогите с 3 задачами на питон 3!!! пожалуйста!!
- 4 задачи по темам:Массивы,Строки,Циклы,условный оператор
- Есть ли способ вывести случайное число не используя модуль random в python
- Решение задачи по программированию (желательно питон) Сложность O(квадрат(n))
- Как понять логику решения следующей задачи "ДЛЯ НАЧИНАЮЩИХ"?
- Не могу решать задачи на целочисленную арифметику в питоне.
- нужно написать задачи на питоне
- Заполнить двухмерный список случайными числами python
- Как научиться понимать и решать поставленные задачи в программирование?
- Математика и решения задачи