58
задан 7 February 2009 в 01:00

2 ответа

Списки Python имеют index() метод, который можно использовать для нахождения положения первым возникновение объекта в списке. Обратите внимание, что list.index() повышения ValueError, когда значение не найдено в списке, таким образом, можно хотеть перенести его в try / except:

try:
    idx = lst.index(value)
except ValueError:
    idx = None

Для нахождения положения последним возникновение объекта в списке эффективно (т.е. не создавая обратный список) можно использовать эту функцию:

def rindex(lst, value):
    for i, v in enumerate(reversed(lst)):
        if v == value:
            return len(lst) - i - 1  # return the index in the original list
    return None    

print(rindex([1, 2, 3], 3))     # 2
print(rindex([3, 2, 1, 3], 3))  # 3
print(rindex([3, 2, 1, 3], 4))  # None
3
ответ дан 1 November 2019 в 13:40
s.index(x[, i[, j]])

индекс первого вхождения x в s (в или после индекса i и перед индексом j)

0
ответ дан 1 November 2019 в 13:40

Другие вопросы по тегам:

Похожие вопросы: