co jeśli chcę znaleźć słowo isze zdania this is a cool dude? Próbowałem znaleźć metodę wyszukiwania, ale zwraca ona indeks 2 zamiast 5. Jak to osiągnąć za pomocą funkcji find ()?
Regressor
@Regressor: spójrz na granice wyrażeń regularnych i słów.
Mechanical_meat
28
Krótki przegląd: indexifind
Obok findmetody jest też index. findi indexoba dają ten sam wynik: zwrócenie pozycji pierwszego wystąpienia, ale jeśli nic nie zostanie znalezione index, podniesie a, ValueErrorpodczas gdy findzwraca -1. Szybko, oba mają te same wyniki testów porównawczych.
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
Dodatkowa wiedza: rfindi rindex:
W ogóle, znaleźć i indeks zwróci najmniejszy indeks gdzie przeszedł w rozruchów strunowych, a rfindi rindexpowrócić największy indeks, gdzie rozpoczyna Większość ciąg algorytmy wyszukujące wyszukiwania od lewej do prawej , więc funkcje zaczynające się rwskazywać, że poszukiwania się dzieje z prawej w lewo .
Czyli w przypadku, gdy prawdopodobieństwo szukanego elementu jest bliskie końca niż początku listy rfindlub rindexbyłoby szybsze.
s.rfind(t)#returns: Same as find, but searched right to left
s.rindex(t)#returns: Same as index, but searches right to left
jeśli ciąg jest zdefiniowany jako input_string = "this is a sentence"i jeśli chcemy znaleźć pierwsze wystąpienie słowa is, to czy zadziała? # 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
aby zaimplementować to w sposób algorytmiczny, nie używając żadnej wbudowanej funkcji Pythona. Można to zaimplementować jako
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
Wygląda na to, że wcięcie jest wyłączone i zapomniałeś zamknąć cudzysłowy. Pomocne jest również wyjaśnienie kodu i powodów, dla których miałby on rozwiązać problem; zobacz Jak odpowiedzieć
camille
przepraszam,
edytuję
0
verse = "Jeśli potrafisz zachować głowę, gdy wszystko wokół ciebie \ n Tracisz ich i obwiniasz za siebie, \ nJeśli możesz sobie zaufać, gdy wszyscy w ciebie wątpią, \ n Ale uwzględnij też ich wątpliwości; \ nJeśli możesz czekać i nie męczyć się czekaniem, \ n Lub byciem okłamanym, nie zadawaj się kłamstwom \ nLub bycia nienawidzonym, nie poddawaj się nienawiści, \ n A jednak nie wyglądaj zbyt dobrze ani nie mów zbyt mądrze : "
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
jeśli nie zostanie znalezionyis
ze zdaniathis is a cool dude
? Próbowałem znaleźć metodę wyszukiwania, ale zwraca ona indeks 2 zamiast 5. Jak to osiągnąć za pomocą funkcji find ()?Krótki przegląd:
index
ifind
Obok
find
metody jest teżindex
.find
iindex
oba dają ten sam wynik: zwrócenie pozycji pierwszego wystąpienia, ale jeśli nic nie zostanie znalezioneindex
, podniesie a,ValueError
podczas gdyfind
zwraca-1
. Szybko, oba mają te same wyniki testów porównawczych.Dodatkowa wiedza:
rfind
irindex
:Czyli w przypadku, gdy prawdopodobieństwo szukanego elementu jest bliskie końca niż początku listy
rfind
lubrindex
byłoby szybsze.Źródło: Python: Visual QuickStart Guide, Toby Donaldson
źródło
input_string = "this is a sentence"
i jeśli chcemy znaleźć pierwsze wystąpienie słowais
, to czy zadziała?# 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")
aby zaimplementować to w sposób algorytmiczny, nie używając żadnej wbudowanej funkcji Pythona. Można to zaimplementować jako
źródło
źródło
verse = "Jeśli potrafisz zachować głowę, gdy wszystko wokół ciebie \ n Tracisz ich i obwiniasz za siebie, \ nJeśli możesz sobie zaufać, gdy wszyscy w ciebie wątpią, \ n Ale uwzględnij też ich wątpliwości; \ nJeśli możesz czekać i nie męczyć się czekaniem, \ n Lub byciem okłamanym, nie zadawaj się kłamstwom \ nLub bycia nienawidzonym, nie poddawaj się nienawiści, \ n A jednak nie wyglądaj zbyt dobrze ani nie mów zbyt mądrze : "
źródło