Нахождение первого , второго и третьего максимумов в списке

Есть задача : Создать список из случайных чисел и найти в нём первый, второй и третий максимумы(три элемента в порядке убывания). Результат вывести в консоль с помощью 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))
→ Ссылка