Ответы:
>>> s = "the dude is a cool dude"
>>> s.find('dude')
4
is
в предложении this is a cool dude
? Я попробовал найти метод, но он возвращает индекс 2 вместо 5. Как мне добиться этого с помощью find ()?
index
иfind
Рядом с find
методом тоже есть index
. find
и index
оба дают один и тот же результат: возвращение позиции первого вхождения, но если ничего не найдено index
будет приподнять , ValueError
тогда find
возвращается -1
. Speedwise, оба имеют одинаковые результаты тестов.
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
:В общем, найти и проиндексировать вернуть наименьший индекс , где прошел строковые начинается, а
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, Toby Donaldson
input_string = "this is a sentence"
и если мы хотим найти первое вхождение слова is
, то будет ли это работать? # first occurence of word in a sentence input_string = "this is a sentence" # return the index of the word matching_word = "is" input_string.find("is")
реализовать это алгоритмически, не используя встроенную функцию 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
def find_pos(chaine,x):
for i in range(len(chaine)):
if chaine[i] ==x :
return 'yes',i
return 'no'
verse = "Если ты можешь не терять голову, когда все вокруг тебя \ n Теряешь свою и винишь в этом тебя, \ nЕсли ты можешь доверять себе, когда все мужчины сомневаются в тебе, \ n Но учти и их сомнения; \ nЕсли можешь ждать и не уставать от ожидания, \ n Или быть обманутым, не лгать, \ nИли быть ненавистным, не поддаваться ненависти, \ n И все же не выглядеть слишком хорошо и не говорить слишком мудро :»
enter code here
print(verse)
#1. What is the length of the string variable verse?
verse_length = len(verse)
print("The length of verse is: {}".format(verse_length))
#2. What is the index of the first occurrence of the word 'and' in verse?
index = verse.find("and")
print("The index of the word 'and' in verse is {}".format(index))
-1
если не найден