list.index()
Метод index() возвращает индекс первого вхождения указанного значения в списке. Если значение не найдено, выбрасывается исключение ValueError. Поиск можно ограничить диапазоном через необязательные параметры start и stop.
Сигнатура
list.index(x, start=0, stop=sys.maxsize)
Параметры
x— искомое значение. Сравнение производится через==.start— индекс, с которого начинать поиск (включительно). По умолчанию0.stop— индекс, до которого вести поиск (не включительно). По умолчанию — до конца списка.
Возвращаемое значение
Целое число (int) — нулевой индекс первого вхождения. Если не найдено, выбрасывается ValueError.
Примеры использования
Пример 1. Поиск элемента.
boards = ["Arduino", "ESP32", "STM32", "ESP32"]
print(boards.index("ESP32"))
1
Пример 2. Обработка отсутствующего значения.
items = [10, 20, 30]
try:
pos = items.index(99)
except ValueError:
pos = -1
print(pos)
-1
Пример 3. Поиск в диапазоне.
Если нужно найти не первое, а следующее вхождение — задайте start:
data = [1, 2, 3, 2, 1, 2]
first = data.index(2)
second = data.index(2, first + 1)
print(first, second)
1 3
Пример 4. Ограничение области поиска.
values = [10, 20, 30, 40, 50]
print(values.index(30, 0, 4))
try:
print(values.index(50, 0, 4))
except ValueError as e:
print("Не найдено:", e)
2
Не найдено: 50 is not in list
Пример 5. Безопасная проверка перед поиском.
names = ["Алия", "Бахыт", "Айдос"]
target = "Бахыт"
if target in names:
print(f"{target} стоит на позиции {names.index(target)}")
else:
print(f"{target} не найден")
Бахыт стоит на позиции 1
См. также
list.count() — подсчёт количества вхождений
tuple.index() — аналогичный метод для кортежей
list.remove() — удаление первого вхождения
Примечание
Лицензия и источники
Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.