Co je Python String find ()?
Python String find () je funkce dostupná v knihovně Pythonu k vyhledání indexu prvního výskytu podřetězce z daného řetězce. Funkce find () string vrátí -1 místo vyvolání výjimky, pokud zadaný podřetězec není v daném řetězci přítomen.
V tomto výukovém programu metody vyhledávání řetězců Python () se naučíte:
- Co je Python String find ()?
- Syntaxe řetězce Python find ()
- Příklad metody find () s výchozími hodnotami
- Příklad find () pomocí argumentu start
- Příklad find () pomocí argumentů start a end
- Příklad metody find () Vyhledání polohy daného dílčího řetězce v řetězci
- Python string rfind ()
- Index řetězce Pythonu ()
- Chcete-li zjistit celkový výskyt podřetězce
Syntaxe řetězce Python find ()
Základní syntaxe funkce Python find () je následující:
string.find(substring,start,end)
Parametry pro metodu find ()
Tady jsou tři parametry funkce String find () v Pythonu:- podřetězec : Podřetězec, který chcete prohledat v daném řetězci.
- start : (volitelně) Počáteční hodnota, od které bude zahájeno hledání podřetězce. Ve výchozím nastavení je to 0.
- end : (volitelně) Koncová hodnota, kde hledání podřetězce skončí. Ve výchozím nastavení je hodnotou délka řetězce.
Příklad metody find () s výchozími hodnotami
Parametry předávané metodě Python find () jsou podřetězec, tj. Řetězec, který chcete vyhledat, začít a ukončit. Počáteční hodnota je ve výchozím nastavení 0 a koncová hodnota je délka řetězce.
V tomto příkladu použijeme metodu find () v Pythonu s výchozími hodnotami.
Metoda find () vyhledá podřetězec a dá pozici prvního výskytu podřetězce. Nyní, pokud je podřetězec v daném řetězci přítomen vícekrát, vrátí vám index nebo pozici prvního.
Příklad:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials is at:", mystring.find("Tutorials"))
Výstup:
The position of Tutorials is at: 12
Příklad find () pomocí argumentu start
Můžete prohledat podřetězec v daném řetězci a určit počáteční pozici, odkud bude hledání zahájeno. Stejný lze použít počáteční parametr.
V příkladu bude uvedena počáteční poloha jako 15 a metoda find () v metodě Python zahájí hledání od pozice 15. Zde bude koncovou pozicí délka řetězce a bude hledat až do konce řetězce z 15 pozic dále.
Příklad:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
Výstup:
The position of Tutorials is at 48
Příklad find () pomocí argumentů start a end
Pomocí parametru začátek a konec se pokusíme místo hledání celého řetězce omezit vyhledávání.
Příklad:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
Výstup:
The position of Tutorials is at 12
Příklad metody find () Vyhledání polohy daného dílčího řetězce v řetězci
Víme, že find () nám pomáhá najít index prvního výskytu podřetězce. Vrátí -1, pokud podřetězec není v daném řetězci přítomen. Následující příklad ukazuje index, když je řetězec k dispozici, a -1, když nenajdeme podřetězec, který hledáme.
Příklad:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Best site is at:", mystring.find("Best site", 5, 40))print("The position of Guru99 is at:", mystring.find("Guru99", 20))
Výstup:
The position of Best site is at: 27The position of Guru99 is at: -1
Python string rfind ()
Funkce Python rfind () je obdobou funkce find () s jediným rozdílem v tom, že rfind () dává nejvyšší index pro daný podřetězec a find () dává nejnižší, tj. Úplně první index. Rfind () i find () vrátí -1, pokud podřetězec není k dispozici.
V níže uvedeném příkladu máme řetězec „Meet Guru99 Tutorials Site. Best site for Python Tutorials!“ a pokusí se najít pozici podřetězců Tutoriály pomocí find () a rfind (). Výskyt výukových programů v řetězci je dvakrát.
Zde je příklad, kde se používají jak find (), tak rfind ().
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials using find() : ", mystring.find("Tutorials"))print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))
Výstup:
The position of Tutorials using find() : 12The position of Tutorials using rfind() : 48
Výstup ukazuje, že find () dává index úplně prvního dílčího Tutorials, který získá, a rfind () dává poslední index dílčích Tutorials.
Index řetězce Pythonu ()
Řetězcový index () v Pythonu je funkce, která vám dá pozici podřetězce, jako je find (). Jediný rozdíl mezi nimi je, index () vyvolá výjimku, pokud v řetězci není podřetězec a find () vrátí -1.
Zde je funkční příklad, který ukazuje chování index () a find ().
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials using find() : ", mystring.find("Tutorials"))print("The position of Tutorials using index() : ", mystring.index("Tutorials"))
Výstup:
The position of Tutorials using find() : 12The position of Tutorials using index() : 12
Získáváme stejnou pozici jak pro find (), tak pro index (). Podívejme se na příklad, když daný podřetězec není v řetězci.
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials using find() : ", mystring.find("test"))print("The position of Tutorials using index() : ", mystring.index("test"))
Výstup:
The position of Tutorials using find() : -1Traceback (most recent call last):File "task1.py", line 3, inprint("The position of Tutorials using index() : ", mystring.index("test"))ValueError: substring not found
Ve výše uvedeném příkladu se snažíme najít pozici podřetězce „test“. Podřetězec není v daném řetězci přítomen, a proto pomocí find () dostaneme pozici jako -1, ale pro index () vyvolá chybu, jak je uvedeno výše.
Chcete-li zjistit celkový výskyt podřetězce
Abychom zjistili celkový počet výskytů podřetězce v daném řetězci, využijeme funkci find () v Pythonu. Bude procházet řetězcem pomocí smyčky for-loop od 0 do konce řetězce. Využije parametr startIndex pro find ().
Proměnné startIndex a count budou inicializovány na 0. Inside for -loop zkontroluje, zda je podřetězec uvnitř řetězce daného pomocí find () a startIndex jako 0.
Hodnota vrácená z find (), pokud není -1, aktualizuje startIndex na index, kde je nalezen řetězec, a také zvýší hodnotu počtu.
Zde je funkční příklad:
my_string = "test string test, test string testing, test string test string"startIndex = 0count = 0for i in range(len(my_string)):k = my_string.find('test', startIndex)if(k != -1):startIndex = k+1count += 1k = 0print("The total count of substring test is: ", count )
Výstup:
The total count of substring test is: 6
souhrn
- Metoda Python string find () pomáhá najít index prvního výskytu podřetězce v daném řetězci. Vrátí -1, pokud podřetězec není k dispozici.
- Parametry předané metodě Python find substring jsou podřetězec, tj. Řetězec, který chcete vyhledat, začít a ukončit. Počáteční hodnota je ve výchozím nastavení 0 a koncová hodnota je délka řetězce.
- Můžete prohledat podřetězec v daném řetězci a určit počáteční pozici, odkud bude hledání zahájeno. Stejný lze použít počáteční parametr.
- Pomocí parametru začátek a konec se pokusíme místo hledání celého řetězce omezit vyhledávání.
- Funkce Python rfind () je obdobou funkce find () s jediným rozdílem v tom, že rfind () dává nejvyšší index pro daný podřetězec a find () dává nejnižší, tj. Úplně první index. Rfind () i find () vrátí -1, pokud podřetězec není k dispozici.
- Řetězec indexu Python () je další funkce, která vám poskytne pozici podřetězce, jako je find (). Jediný rozdíl mezi nimi je, index () vyvolá výjimku, pokud v řetězci není podřetězec a find () vrátí -1.
- Můžeme použít find () k nalezení počtu celkového výskytu podřetězce v daném řetězci.