index() последнего вхождения в список в python

В моем для цикла я получил этот код:

start = listData.index(datum) + 1

и listData это:

listData = ['H66', 'B35', 'L21', 'B35', 'H66', 'J02', 'J04', 'L21', 'J20']   

что я хочу, это начать = 1,2,3,4,5,6,7,9

но я получил начало = 1,2,3,2,1,6,7,3 (потому что index() возвращает индекс первого вхождения? Я полагаю?)

Есть ли способ проиндексировать последнее вхождение?

2 ответа

Решение

Как насчет:

start = len(listData) - listData[::-1].index(datum)

(т.е. последний индекс - это первый индекс из обращенного списка)

Ну вот:

>>> listData = ['H66', 'B35', 'L21', 'B35', 'H66', 'J02', 'J04', 'L21', 'J20']
>>> def return_last(x):
...     return len(listData)-listData[::-1].index(x)-1
... 
>>> return_last("L21")
7
>>> return_last("H66")
4
Другие вопросы по тегам