Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python. Как правильно использовать list.index() с конца списка?

Дункан Ученик (129), на голосовании 7 лет назад
Добрый вечер, подскажите пожалуйста, почему не всегда правильно срабатывает поиск индекса, если нужно начать поиск с конца списка?
Пример кода:
s = list(map(int, input().split()))
print(max(s), s.index(max(s), -1))

На stackoverflow много советов, как найти индекс последнего элемента, но какие-то слишком замудренные, как мне кажется, решения. Ведь для чего-то есть параметры start\stop у метода .index?
Вообще, я решаю задачу по поиску максимума в списке и индекса последнего элемента в списке с таким значением.
Голосование за лучший ответ
noname Мастер (2096) 7 лет назад
я правильно понял - нужно найти индекс последнего элемента списка?
ДунканУченик (129) 7 лет назад
не совсем так. индекс последнего max элемента (если их несколько, например).
noname Мастер (2096) тогда так lst.index(max(lst))
ДунканУченик (129) 7 лет назад
пример ввода: 1 2 3 3
вывод: 3 3

мой код такие случаи обрабатывает, но падает, например, при вводе 3 2 1
ValueError: 3 is not in list
Слава ЛевшанковМастер (1331) 7 лет назад
len(lst) это и есть индекс последнего а нужно найти индекс последнего максимального элемента
s = list(map(int, input().split()))
max_el = max(s)
print([i for i,x in enumerate(s) if x == max_el][-1])
Дункан Ученик (129) спасибо! это помогло. единственное - еще не проходил таких вещей, странно, что задача не может быть решена более простым способом. гуглил, но пока так и не нашел толком инфы, как правильно использовать (и можно ли, и если нет, то почему) параметр start=int в методе list.index(). изначально хотел решить, как писал в описании: list.index(max(list), -1)
Похожие вопросы