Как найти последнее вхождение элемента в список Python - PullRequest
61 голосов
/ 31 июля 2011

Скажите, у меня есть этот список:

li = ["a", "b", "a", "c", "x", "d", "a", "6"]

Насколько мне показала справка, нет встроенной функции, которая возвращает последнее вхождение строки (подобно обратному index). В общем, как я могу найти последнее вхождение "a" в данном списке?

Ответы [ 13 ]

0 голосов
/ 24 сентября 2017

val = [1,2,2,2,2,2,4,5].

Если вам нужно найти последнее вхождение 2

last_occurence = (len(val) -1) - list(reversed(val)).index(2)

0 голосов
/ 30 августа 2016
def rindex(lst, val):
    try:
        return next(len(lst)-i for i, e in enumerate(reversed(lst), start=1) if e == val)
    except StopIteration:
        raise ValueError('{} is not in list'.format(val))
0 голосов
/ 19 июня 2015

Используйте простой цикл:

def reversed_index(items, value):
    for pos, curr in enumerate(reversed(items)):
        if curr == value:
            return len(items) - pos - 1
    raise ValueError("{0!r} is not in list".format(value))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...