что, если я хочу найти слово isв предложении this is a cool dude? Я попробовал найти метод, но он возвращает индекс 2 вместо 5. Как мне добиться этого с помощью find ()?
Regressor
@Regressor: изучите границы регулярных выражений и слов.
Mechanical_meat
28
Краткий обзор: 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
если строка определена как 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")
Regressor
1
реализовать это алгоритмически, не используя встроенную функцию 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
Похоже, у вас отключен отступ, и вы забыли закрыть кавычки. Также полезно объяснение вашего кода и того, почему он решает проблему; см. Как ответить
Камилла,
извините, я редактирую это ... мой код находит первое появление буквы в строке и возвращает его место
Бенмадани Язид
0
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
если не найденis
в предложенииthis is a cool dude
? Я попробовал найти метод, но он возвращает индекс 2 вместо 5. Как мне добиться этого с помощью find ()?Краткий обзор:
index
иfind
Рядом с
find
методом тоже естьindex
.find
иindex
оба дают один и тот же результат: возвращение позиции первого вхождения, но если ничего не найденоindex
будет приподнять ,ValueError
тогдаfind
возвращается-1
. Speedwise, оба имеют одинаковые результаты тестов.Дополнительные знания:
rfind
иrindex
:Так что в случае, если вероятность элемента, который вы ищете, близка к концу, чем к началу списка,
rfind
илиrindex
будет быстрее.Источник: 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. Это может быть реализовано как
источник
источник
verse = "Если ты можешь не терять голову, когда все вокруг тебя \ n Теряешь свою и винишь в этом тебя, \ nЕсли ты можешь доверять себе, когда все мужчины сомневаются в тебе, \ n Но учти и их сомнения; \ nЕсли можешь ждать и не уставать от ожидания, \ n Или быть обманутым, не лгать, \ nИли быть ненавистным, не поддаваться ненависти, \ n И все же не выглядеть слишком хорошо и не говорить слишком мудро :»
источник