Python Metoda String find() s primjerima
Što je Python String find()?
Python String find() je funkcija dostupna u Python knjižnica za pronalaženje indeksa prvog pojavljivanja podniza iz danog niza. Funkcija string find() vratit će -1 umjesto izbacivanja iznimke, ako navedeni podniz nije prisutan u danom nizu.
Sintaksa od Python traženje niza()
Osnovna sintaksa Python funkcija find() je sljedeća:
string.find(substring,start,end)
Parametri za metodu find().
Ovdje su tri parametra funkcije String find(). Python:
- podniz: podniz koji želite pretraživati u danom nizu.
- početak: (neobavezno) Početna vrijednost od koje će započeti traženje podniza. Prema zadanim postavkama, to je 0.
- kraj: (neobavezno) Krajnja vrijednost gdje će završiti traženje podniza. Prema zadanim postavkama vrijednost je duljina niza.
Primjer metode find() sa zadanim vrijednostima
Parametri proslijeđeni Python metoda find() je podniz, tj. niz koji želite tražiti, početak i kraj. Početna vrijednost je 0 prema zadanim postavkama, a krajnja vrijednost je duljina niza.
U ovom primjeru koristit ćemo metodu find() in Python sa zadanim vrijednostima.
Metoda find() tražit će podniz i dati poziciju prvog pojavljivanja podniza. Sada, ako je podniz prisutan više puta u danom nizu, ipak će vam vratiti indeks ili poziciju prvog.
Primjer:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials"))
Izlaz:
The position of Tutorials is at: 12
Primjer find() koristeći početni argument
Možete pretraživati podniz u zadanom nizu i odrediti početnu poziciju, odakle će pretraga započeti. Za isto se može koristiti početni parametar.
Primjer će odrediti početnu poziciju kao 15, a find() in Python metoda će započeti pretraživanje od pozicije 15. Ovdje će krajnja pozicija biti duljina niza i pretraživat će do kraja niza od 15 pozicija nadalje.
Primjer:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
Izlaz:
The position of Tutorials is at 48
Primjer find() koji koristi početne i završne argumente
Koristeći početni i završni parametar, pokušat ćemo ograničiti pretraživanje, umjesto pretraživanja cijelog niza.
Primjer:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
Izlaz:
The position of Tutorials is at 12
Primjer metode find() Za pronalaženje položaja zadanog podniza u nizu
Znamo da nam find() pomaže pronaći indeks prvog pojavljivanja podniza. Vraća -1 ako podniz nije prisutan u danom nizu. Primjer u nastavku prikazuje indeks kada je niz prisutan i -1 kada ne pronađemo podniz koji tražimo.
Primjer:
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))
Izlaz:
The position of Best site is at: 27 The position of Guru99 is at: -1
Python string rfind()
The Python funkcija rfind() slična je funkciji find() s jedinom razlikom što rfind() daje najviši indeks za dani podniz, a find() daje najniži, tj. prvi indeks. I rfind() i find() vratit će -1 ako podniz nije prisutan.
U donjem primjeru imamo niz "Meet Guru99 Tutorials Site. Najbolja stranica za Python Tutoriali!” i pokušat će pronaći položaj podniza Upute koristeći find() i rfind(). Upute se u nizu pojavljuju dvaput.
Ovdje je primjer gdje se koriste i find() i 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"))
Izlaz:
The position of Tutorials using find() : 12 The position of Tutorials using rfind() : 48
Izlaz pokazuje da find() daje indeks prvog podniza Tutorials koji dobiva, a rfind() daje posljednji indeks podniza Tutorials.
Python indeks niza()
The Python string index() je funkcija koja će vam dati poziciju zadanog podniza kao i find(). Jedina razlika između to dvoje je što će index() izbaciti iznimku ako podniz nije prisutan u nizu, a find() će vratiti -1.
Ovdje je radni primjer koji pokazuje ponašanje index() i 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"))
Izlaz:
The position of Tutorials using find() : 12 The position of Tutorials using index() : 12
Dobivamo istu poziciju i za find() i za index(). Pogledajmo primjer kada navedeni podniz nije prisutan u nizu.
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"))
Izlaz:
The position of Tutorials using find() : -1 Traceback (most recent call last): File "task1.py", line 3, in <module> print("The position of Tutorials using index() : ", mystring.index("test")) ValueError: substring not found
U gornjem primjeru pokušavamo pronaći poziciju podniza "test". Podniz nije prisutan u zadanom nizu, pa korištenjem find() dobivamo poziciju -1, ali za index() izbacuje pogrešku kao što je gore prikazano.
Da biste pronašli ukupno pojavljivanje podniza
Da bismo pronašli ukupan broj puta koliko se podniz pojavio u danom nizu, upotrijebit ćemo funkciju find() u Python. Prolazit će kroz niz koristeći for-petlju od 0 do kraja niza. Koristit će se parametar startIndex za find().
Varijable startIndex i count inicijalizirat će se na 0. Inside for –loop će provjeriti je li podniz prisutan unutar niza zadanog pomoću find() i startIndex kao 0.
Vrijednost vraćena od find(), ako nije -1, ažurirat će startIndex na indeks gdje je niz pronađen i također će povećati vrijednost brojanja.
Evo radnog primjera:
my_string = "test string test, test string testing, test string test string" startIndex = 0 count = 0 for i in range(len(my_string)): k = my_string.find('test', startIndex) if(k != -1): startIndex = k+1 count += 1 k = 0 print("The total count of substring test is: ", count )
Izlaz:
The total count of substring test is: 6
rezime
- The Python string find() metoda pomaže u pronalaženju indeksa prvog pojavljivanja podniza u zadanom nizu. Vratit će -1 ako podniz nije prisutan.
- Parametri proslijeđeni Python find substring metoda je podniz, tj. niz koji želite tražiti, početak i kraj. Početna vrijednost je 0 prema zadanim postavkama, a krajnja vrijednost je duljina niza.
- Možete pretraživati podniz u zadanom nizu i odrediti početnu poziciju, odakle će pretraga započeti. Za isto se može koristiti početni parametar.
- Koristeći početni i završni parametar, pokušat ćemo ograničiti pretraživanje, umjesto pretraživanja cijelog niza.
- The Python funkcija rfind() je slična funkciji find() s jedinom razlikom što rfind() daje najviši indeks za dani podniz, a find() daje najniži, tj. prvi indeks. I rfind() i find() vratit će -1 ako podniz nije prisutan.
- The Python string index() je još jedna funkcija koja će vam dati poziciju podniza zadanog baš kao i find(). Jedina razlika između to dvoje je što će index() izbaciti iznimku ako podniz nije prisutan u nizu, a find() će vratiti -1.
- Možemo upotrijebiti find() da pronađemo ukupan broj pojavljivanja podniza u danom nizu.
" Nauči više o Python Split split()