Почему в мой код возвращает не то что мне нужно?

Я пытаюсь написать код выполняющий задание курса Основы программирования на Python, автор: Национальный исследовательский университет "Высшая школа экономики", на Coursera.

Задание

Дан список чисел. Выведите все элементы списка, которые больше предыдущего элемента.

Формат ввода

Вводится список чисел. Все числа списка находятся на одной строке.

Формат вывода

Выведите ответ на задачу. Пример Тест 1 Входные данные: 1 5 2 4 3

Вывод программы: 5 4

Мой код

spisok = input().split()
a = 1
sled = spisok[a]

for i in map(int, spisok):
    if i < int(sled):
        a += 1
        print(sled)
    else:
        a += 1

Программа вместо того, чтобы подставлять на место [а] в spisok[a] новый индекс, просто один раз печатает число по индексу 1. То есть вместо перебора индексов и сравнивания чисел код просто останавливается на первом же проходе...


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

Автор решения: Jack_oS
mylist = input().split()

пройдитесь по списку с помощью перебора индексов (от 1)

for i in range(1, len(mylist)):
    if mylist[i] > mylist[i-1]: 
        print(spisok[i])
5
4
→ Ссылка
Автор решения: Danis

Вы взяли элемент код индексом a, теперь в sled лежит элемент который уже никак не связан с списком и поэтому изменение переменной a никак не повлияет на значение в sled

ваш код с небольшими изменениями

spisok = input().split()
a = 1
sled = spisok[a]

for i in map(int, spisok):
    if i < int(sled):
        print(sled)
    a += 1
    sled = spisok[a]

Если к примеру длина spisok это 5, то на последней итерации значение a будет 5 и попытка взять элемент под индексом 5 вызовет ошибку IndexError, поэтому последнее значение списка брать не надо. убрать последний элемент можно легко с помощью среза

map(int, spisok[:-1])
→ Ссылка