Python Metoda String find() s primjerima

โšก Pametni saลพetak

Python string find() je ugraฤ‘ena metoda koja vraฤ‡a indeks prvog pojavljivanja podniza unutar niza. Vraฤ‡a -1 kada podniz nije prisutan, izbjegavajuฤ‡i iznimke.

  • ๐Ÿ” Sintaksa: find() uzima podniz plus opcionalne poฤetne i zavrลกne indekse kako bi se ograniฤio raspon pretraลพivanja.
  • ๐ŸŽฏ Prva utakmica: find() vraฤ‡a najniลพi indeks prvog pojavljivanja, skenirajuฤ‡i s lijeva na desno.
  • โž– Nije pronaฤ‘eno: find() vraฤ‡a -1 umjesto da podigne greลกku kada podniz nedostaje.
  • ๐Ÿ” rfind(): Metoda rfind() vraฤ‡a najviลกi indeks, pretraลพujuฤ‡i s desne strane.
  • โš ๏ธ indeks(): Metoda index() ponaลกa se kao find(), ali izaziva ValueError kada nedostaje podniz.
  • ๐Ÿค– AI pomoฤ‡: AI asistenti za kodiranje generiraju logiku find() i pokreฤ‡u pretraลพivanje podnizova u NLP tekstualnim cjevovodima.

Python String find()

ล to je Python String find()?

Python String find() je funkcija dostupna u Python biblioteka za pronalaลพenje indeksa prvog pojavljivanja podniza unutar zadanog niza. Funkcija find() vraฤ‡a -1 umjesto bacanja iznimke kada navedeni podniz nije prisutan u zadanom nizu. To je jedan od Pythonnajฤeลกฤ‡e koriลกten string metode za lociranje teksta.

Sintaksa od Python traลพenje niza()

Osnovna sintaksa Python funkcija find() je sljedeฤ‡a:

string.find(substring,start,end)

Parametri za metodu find().

Evo tri parametra funkcije find() u Python:

  • podnizPodniz koji ลพelite pretraลพiti u zadanom nizu.
  • poฤetak: (neobavezno) Poฤetna vrijednost od koje ฤ‡e zapoฤeti pretraga podniza. Prema zadanim postavkama, to je 0.
  • kraj: (neobavezno) Zavrลกna vrijednost gdje ฤ‡e zavrลกiti pretraลพivanje podniza. Prema zadanim postavkama, vrijednost je duljina niza.

Primjer metode find() sa zadanim vrijednostima

Parametri koji se prosljeฤ‘uju Python Metoda find() je podniz, odnosno niz koji ลพelite pretraลพiti, plus poฤetak i kraj. Poฤetna vrijednost je prema zadanim postavkama 0, a krajnja vrijednost je duljina niza.

U ovom primjeru koristit ฤ‡emo metodu find() u Python sa zadanim vrijednostima.

Metoda find() ฤ‡e traลพiti podniz i dati poziciju prvog pojavljivanja podniza. Ako se podniz pojavljuje viลกe puta u zadanom nizu, i dalje ฤ‡e 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 traลพiti podniz u zadanom nizu i odrediti poฤetnu poziciju od koje ฤ‡e pretraลพivanje zapoฤeti. U tu svrhu moลพe se koristiti parametar start.

U donjem primjeru poฤetna pozicija je odreฤ‘ena kao 20, a metoda find() u Python zapoฤet ฤ‡e pretraลพivanje od pozicije 20. Ovdje ฤ‡e krajnja pozicija biti duljina niza, pa se pretraลพuje do kraja niza od pozicije 20 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

Koriลกtenjem poฤetnih i zavrลกnih parametara moลพemo ograniฤiti pretragu 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 pozicije zadanog podniza u nizu

Znamo da nam find() pomaลพe pronaฤ‡i indeks prvog pojavljivanja podniza. Vraฤ‡a -1 ako podniz nije prisutan u zadanom nizu. Primjer u nastavku prikazuje indeks kada je niz prisutan i -1 kada podniz koji traลพimo nije pronaฤ‘en.

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 zadani podniz, dok find() daje najniลพi, odnosno prvi indeks. I rfind() i find() vraฤ‡aju -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 poziciju podniza Tutorials koristeฤ‡i find() i rfind(). Podniz Tutorials se pojavljuje dva puta u nizu.

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 pronaฤ‘e, dok rfind() daje posljednji indeks podniza Tutorials.

Python indeks niza()

The Python Funkcija index() u nizu vraฤ‡a poziciju zadanog podniza, baลก kao i find(). Jedina razlika izmeฤ‘u njih je u tome ลกto index() baca iznimku ako podniz nije prisutan u nizu, dok find() vraฤ‡a -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 zadani 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 funkcije find() dobivamo poziciju kao -1, ali za index() izbacuje greลกku, kao ลกto je prikazano gore.

Da biste pronaลกli ukupno pojavljivanje podniza

Da bismo pronaลกli ukupan broj pojavljivanja podniza u zadanom nizu, koristit ฤ‡emo funkciju find() u PythonProฤ‡i ฤ‡emo kroz niz pomoฤ‡u for petlje od 0 do kraja niza, koristeฤ‡i parametar startIndex za find().

Varijable startIndex i count bit ฤ‡e inicijalizirane na 0. Unutar for-petlje provjerit ฤ‡emo je li podniz prisutan unutar zadanog niza koristeฤ‡i find() s startIndexom kao 0.

Vrijednost vraฤ‡ena iz find(), ako nije -1, aลพurirat ฤ‡e startIndex na indeks gdje je niz pronaฤ‘en i takoฤ‘er ฤ‡e poveฤ‡ati vrijednost count.

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

" Nauฤi viลกe o Python Split split()

Pitanja i odgovori

Da. find() toฤno odgovara podnizu, pa "Hello".find("h") vraฤ‡a -1 dok "Hello".find("H") vraฤ‡a 0. Prvo pretvorite niz s lower() ili upper() kada vam je potrebna pretraga koja ne razlikuje velika i mala slova.

Operator in vraฤ‡a samo True ili False kako bi pokazao postoji li podniz. find() ide dalje i vraฤ‡a toฤan indeks prvog podudaranja ili -1 kada podniz nedostaje.

Da. find() prihvaฤ‡a negativne poฤetne i zavrลกne indekse, koji se broje od kraja niza. Na primjer, "Guru99โ€.find(โ€œ9โ€, -2) pretraลพuje samo zadnja dva znaka i vraฤ‡a njihovu poziciju.

Metoda str.find() pronalazi jedno po jedno podudaranje. Za sva podudaranja u jednom pozivu koristite modul re: re.findall() vraฤ‡a svaki odgovarajuฤ‡i podniz, a re.finditer() vraฤ‡a objekte podudaranja sa svakom poฤetnom pozicijom.

find() je metoda koja radi samo s nizovima znakova, pa njezino pozivanje na popisu izaziva greลกku AttributeError. Za lociranje stavke na popisu ili u skupu znakova koristite metodu index() koja vraฤ‡a poziciju prvog podudaranja.

Da. Za jednostavno pretraลพivanje podniza, find() je implementiran u C-u i radi brลพe od kompajliranja regularnog izraza. Posegnite za modulom re samo kada su vam potrebni uzorci, zamjenski znakovi ili viลกestruka podudaranja.

U strojnom uฤenju i NLP-u, find() locira kljuฤne rijeฤi, oznake ili razdjelnike dok ฤisti i tokenizira tekst. Otkrivanje prisutnosti podniza ili njegovog poloลพaja pomaลพe u izgradnji znaฤajki i parsiranju ulaznih podataka modela.

Da. GitHub Copilot automatski dovrลกava pozive find(), rfind() i index() iz kratkog komentara koji opisuje vaลก cilj. Agentic AI alati idu dalje, piลกu logiku pretraลพivanja, dodaju poฤetne i zavrลกne argumente i pokreฤ‡u vaลกe testove.

Saลพmite ovu objavu uz: