Итак, если моя строка - "чувак - классный чувак".
Я бы хотел найти первый индекс "чувак":
mystring.findfirstindex('dude') # should return 4
Что такое команда python для этого?
Спасибо.
Итак, если моя строка - "чувак - классный чувак".
Я бы хотел найти первый индекс "чувак":
mystring.findfirstindex('dude') # should return 4
Что такое команда python для этого?
Спасибо.
>>> s = "the dude is a cool dude"
>>> s.find('dude')
4
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, Тоби Дональдсон
реализовать это алгоритмическим способом, не используя встроенную функцию Python. Это может быть реализовано как
def find_pos(string,word):
for i in range(len(string) - len(word)+1):
if string[i:i+len(word)] == word:
return i
return 'Not Found'
string = "the dude is a cool dude"
word = 'dude1'
print(find_pos(string,word))
# output 4