Краткий обзор: index
и find
Рядом с методом find
также существует index
.find
и index
оба дают одинаковый результат: возвращая позицию первого вхождения, , но , если ничего не найдено index
повысит ValueError
, тогда как find
вернет -1
.По скорости оба имеют одинаковые результаты тестов.
s.find(t) #returns: -1, or index where t starts in s
s.index(t) #returns: Same as find, but raises ValueError if t is not in s
Дополнительные знания: rfind
и rindex
:
В общем случае find и index возвращают наименьший индекс, гдепереданная строка начинается, и rfind
и rindex
возвращают наибольший индекс, с которого она начинается. Большинство алгоритмов поиска строк выполняют поиск с слева направо , поэтому функции, начинающиеся с r
, указывают, что поискпроисходит с справа налево .
Таким образом, в случае, если вероятность элемента, который вы ищете, ближе к концу, чем к началу списка, rfind
или rindex
будет быстрее.
s.rfind(t) #returns: Same as find, but searched right to left
s.rindex(t) #returns: Same as index, but searches right to left
Источник: Python: Visual QuickStart Guide, Тоби Дональдсон