Antworten:
>>> s = "the dude is a cool dude"
>>> s.find('dude')
4
isaus dem Satz finden möchte this is a cool dude? Ich habe die find-Methode ausprobiert, aber sie gibt Index 2 statt 5 zurück. Wie erreiche ich dies mit find ()?
indexundfindNeben der findMethode gibt es auch index. findund indexergeben beide das gleiche Ergebnis: die Position des ersten Auftretens wiederkehrende , aber wenn nichts gefunden wird , indexwird eine Erhöhung ValueErrorwährend findkehrt -1. In Bezug auf die Geschwindigkeit haben beide die gleichen Benchmark-Ergebnisse.
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
rfindund rindex:In der Regel findet und Index den kleinsten Index zurück , wo die übergebene String beginnt und
rfindundrindexden größten Index zurück , wo es die meisten der Zeichenfolge beginnt Suchalgorithmen von Suche von links nach rechts , so mit den Startfunktionenrzeigen an, dass die Suche von geschieht rechts nach links .
Für den Fall, dass die Wahrscheinlichkeit des Elements, das Sie suchen, nahe am Ende als am Anfang der Liste liegt rfindoder rindexschneller wäre.
s.rfind(t) #returns: Same as find, but searched right to left
s.rindex(t) #returns: Same as index, but searches right to left
Quelle: Python: Visual QuickStart Guide, Toby Donaldson
input_string = "this is a sentence"und wenn wir das erste Vorkommen des Wortes finden möchten, isfunktioniert es dann? # 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")
um dies auf algorithmische Weise zu implementieren, indem keine in Python eingebaute Funktion verwendet wird. Dies kann implementiert werden als
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'
-1wenn es nicht gefunden wird