Нахождение первого , второго и третьего максимумов в списке
Есть задача : Создать список из случайных чисел и найти в нём первый, второй и третий максимумы(три элемента в порядке убывания). Результат вывести в консоль с помощью print(форматный вывод .format). При чём сделать это нужно без использования сторонних библиотек , разве что random можно. В голову не приходит абсолютно ничего , подскажите пожалуйста как это сделать.
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
если такой простой список (числа), что мешает его отсортировать и взять три последних?
import random
data = [random.randint(1, 100) for x in range(10)]
data.sort(reverse=True)
print(data[:3:])
Автор решения: vp_arth
→ Ссылка
Если сортировку ещё не проходили, или смущает O(N*logN), можно собрать максимумы за один проход:
from random import randint
randList = [randint(1, 100) for _ in range(10)]
a = b = c = float('-inf')
for el in randList:
if el > a:
a, b, c = el, a, b
elif el > b:
b, c = el, b
elif el > c:
c = el
# print(randList)
print('{}, {}, {}'.format(a, b, c))