Как найти индекс конкретного числа в списке? Python
К примеру у нас есть список x = [1, 4, 6, 4, 6, 7, 8], как найти индекс числа 7?
Ответы (3 шт):
Если вас интересует именно list, вам нужна функция index:
print([1, 2, 3, 4, 5, 6, 7].index(7))
Если нужных чисел в списке несколько, можно их индексы найти так:
x = [1, 4, 6, 4, 6, 7, 8, 7, 9]
indexes = [i for i,d in enumerate(x) if d == 7]
print(indexes)
[5, 7]
Думаю, что решения с методом index вам поможет решить задачу, но хотелось бы подметить несколько важных моментов. Метод index работает за O(n). Что не самый плохой результат, но всё же не идеальный. Для более эффективного поиска элемента в списке можно применить, так называемый "бинарный поиск".
Его худшая асимптотика - O(log n), что намного лучше, чем у index. Но для корректной работы бинарного поиска необходимо, чтобы список был отсортирован. Т.е. если в вашей задаче дан заведомо отсортированный список, то стоит обратить внимание на бинарный поиск.
В python есть стандартная библиотека, реализующая бинарный поиск - bisect.