Was ist, wenn ich das Wort 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 ()?
Regressor
@ Regressor: Schauen Sie sich Regex und Wortgrenzen an.
mechanisches
27
Kurzübersicht: indexundfind
Neben 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
Zusätzliches Wissen: rfindund rindex:
In der Regel findet und Index den kleinsten Index zurück , wo die übergebene String beginnt und rfindund rindexden größten Index zurück , wo es die meisten der Zeichenfolge beginnt Suchalgorithmen von Suche von links nach rechts , so mit den Startfunktionen rzeigen 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
Wenn die Zeichenfolge definiert ist als 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")
Regressor
1
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
Scheint, als ob Ihre Einrückung deaktiviert ist und Sie vergessen haben, Ihre Anführungszeichen zu schließen. Eine Erklärung Ihres Codes und warum er das Problem lösen würde, ist ebenfalls hilfreich. Siehe Antworten
camille
Entschuldigung, ich bearbeite es ... mein Code findet das erste Vorkommen eines Buchstabens in einer Zeichenfolge und gibt seinen Platz zurück
-1
wenn es nicht gefunden wirdis
aus dem Satz finden möchtethis 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 ()?Kurzübersicht:
index
undfind
Neben der
find
Methode gibt es auchindex
.find
undindex
ergeben beide das gleiche Ergebnis: die Position des ersten Auftretens wiederkehrende , aber wenn nichts gefunden wird ,index
wird eine ErhöhungValueError
währendfind
kehrt-1
. In Bezug auf die Geschwindigkeit haben beide die gleichen Benchmark-Ergebnisse.Zusätzliches Wissen:
rfind
undrindex
:Für den Fall, dass die Wahrscheinlichkeit des Elements, das Sie suchen, nahe am Ende als am Anfang der Liste liegt
rfind
oderrindex
schneller wäre.Quelle: Python: Visual QuickStart Guide, Toby Donaldson
quelle
input_string = "this is a sentence"
und wenn wir das erste Vorkommen des Wortes finden möchten,is
funktioniert 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
quelle
quelle