В списках Python есть метод index()
, который можно использовать для поиска позиции первого вхождения элемента в списке. Обратите внимание, что list.index()
повышает ValueError
, когда значение не найдено в списке, поэтому вы можете заключить его в try
/ except
:
def index(lst, value):
try:
return lst.index(value)
except ValueError:
return None
print(index([1, 2, 3], 2)) # 1
print(index([1, 2, 3], 4)) # 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