Списки 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
s.index(x[, i[, j]])
индекс первого вхождения x в s (в или после индекса i и перед индексом j)