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 znakova โ€žSusret Guru99 stranica s tutorijalima. 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()

Saลพmite ovu objavu uz: