Как продолжить итерацию элементов?

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Здравствуйте!
Решаю задачу:
Написать функцию get_winners(results), которая на вход принимает
список результатов олимпиады. Каждый элемент в списке составляет целое число
от 0 до 600, которое соответствует количеству баллов набранных одним из
участников. Для простоты количество баллов ни у одного из участников не повторяется.
Номеру участника соответствует порядковый номер в списке (НЕ индекс)
то есть первый элемент списка - это количество баллов набранных участником с номером 1
второй элемент - это количество баллов, набранных участников с номером 2
и так далее
Функция должна вернуть список, состоящий из номеров участников, которые заняли первые три места в
порядке от первого до третьего
То есть у кого больше баллов - первый в списке, у кого меньше всего баллов - последний.
Пример использования:
result = number_of_winner([115, 352, 0, 310, 500])
print(result) # [5, 2, 4]

Мое решение:
Код:
def get_winners(results):
    result = []
    for index, element in enumerate(results):
        if index == 0:
            continue
        
        if element > results[index-1]:
            result.append(element)
    print(index+1)
result = get_winners([115, 352, 0, 310, 500])
print(result)

В ответе выдает 5, но мне нужно еще 2 и 4, каким образом можно их вывести?
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
423
115
43
Моё решение:
Python:
def get_winners(results):
    result = {elem: i+1 for i, elem in enumerate(results)}
    return [result[i] for i in sorted(result.keys(), reverse=True)[:3]]


print(get_winners([115, 352, 0, 310, 500]))
 

Форум IT Специалистов