Как найти последний максимальный элемент в list?
dmitrylogvinov, Вы в корне неправильно подходите к обучению. Вам нужно больше времени проводить с учебником и изучать стандартные библиотеки (и в первую очередь - встроенные функции, обращая особое внимание на их параметры), а не пытаться решать задачи "в лоб", раз за разом городя конструкции в стиле Delphi из базового синтаксиса, примерно одинакового для каждого языка. "Батарейки" в Python присутствуют как раз для того, чтобы не изобретать велосипеды.
Задача решается просто и элегантно:from itertools import count

def lastmax(*sequence):
    return max(zip(sequence, count()))

assert lastmax(1, 2, 3) == (3, 2)
assert lastmax(1, 2, 1, 2, 1) == (2, 3)
assert lastmax(1, 2, 3, 4, 5) == (5, 4)
assert lastmax(1, 1, 1, 1, 1) == (1, 4)
Те же самое, но без itertools:def lastmax(*sequence):
    return max(zip(sequence, range(len(sequence))))
Ещё вариант:from operator import itemgetter

def lastmax(*sequence):
    return max(enumerate(sequence), key=itemgetter(1, 0))[::-1]
И ещё:def lastmax(*sequence):
    return max({v: i for i, v in enumerate(sequence)}.items())
Есть и ещё несколько более эзотерических вариантов - например, через heapq.
Создаёте две промежуточные переменные. В одной будет лежать текущий максимум, во второй - индекс последнего текущего максимума.
После этого идёте циклом по списку и сравниваете каждый элемент с текущим максимумом.
Если элемент меньше текущего максимума - он нам не интересен, идёте дальше.
Если элемент больше или равен текущего максимума, то значение этого элемента записываете в качестве нового максимума, а его индекс - в переменную для индекса.