Odpowiedzi:
>>> s = "the dude is a cool dude"
>>> s.find('dude')
4
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 ()?
indexifindObok 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
rfindi rindex:W ogóle, znaleźć i indeks zwróci najmniejszy indeks gdzie przeszedł w rozruchów strunowych, a
rfindirindexpowró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
Źródło: Python: Visual QuickStart Guide, Toby Donaldson
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")
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
def find_pos(chaine,x):
for i in range(len(chaine)):
if chaine[i] ==x :
return 'yes',i
return 'no'
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))
-1jeśli nie zostanie znaleziony