Python String find() metódus példákkal

⚡ Okos összefoglaló

Python A string find() egy beépített metódus, amely visszaadja egy alkarakterlánc első előfordulásának indexét egy karakterláncon belül. -1 értéket ad vissza, ha az alkarakterlánc nincs jelen, elkerülve a kivételeket.

  • 🔍 Syntax: A find() egy részkarakterláncot, valamint opcionális kezdő és záró indexeket használ a keresési tartomány szűkítéséhez.
  • 🎯 Első mérkőzés: A find() visszaadja az első előfordulás legalacsonyabb indexét, balról jobbra haladva.
  • Nem található: A find() függvény -1 értéket ad vissza ahelyett, hogy hibát jelezne, ha a karakterlánc hiányzik.
  • 🔁 rfind(): Az rfind() metódus a legmagasabb indexet adja vissza, ehelyett a jobb oldalról keres.
  • ⚠️ index(): Az index() metódus úgy viselkedik, mint a find() metódus, de ValueError hibát generál, ha a kívánt alkarakterlánc hiányzik.
  • 🤖 AI segítség: A mesterséges intelligencia által fejlesztett kódolási asszisztensek find() logikát generálnak, és alkarakterlánc-keresést végeznek az NLP szövegfolyamatokban.

Python String find()

Mi a Python String find()?

Python String find() egy olyan függvény, amely elérhető a Python könyvtárat, hogy megtalálja egy adott karakterláncon belüli részkarakterlánc első előfordulásának indexét. A find() függvény -1 értéket ad vissza kivétel dobása helyett, ha a megadott részkarakterlánc nem szerepel az adott karakterláncban. Ez az egyik a következők közül: Pythonleggyakrabban használt karakterlánc módszerek szöveg helyének meghatározásához.

szintaxisa Python string find()

Az alapvető szintaxis a Python find() függvény a következő:

string.find(substring,start,end)

A find() metódus paraméterei

Íme a find() függvény három paramétere a következőben: Python:

  • szubsztring: Az adott karakterláncban keresendő alkarakterlánc.
  • kezdet: (opcionális) A kezdőérték, ahonnan a részkarakterlánc keresése indul. Alapértelmezés szerint 0.
  • végén: (opcionális) A végérték, ahol a részkarakterlánc keresése véget ér. Alapértelmezés szerint az érték a karakterlánc hossza.

Példa a find() metódusra alapértelmezett értékekkel

A paraméterek átadásra kerültek a Python A find() metódus paraméterei a keresendő karakterlánc, azaz az alkarakterlánc, valamint a kezdete és a vége. A kezdőérték alapértelmezés szerint 0, a végérték pedig a karakterlánc hossza.

Ebben a példában a find() metódust fogjuk használni Python alapértelmezett értékekkel.

A find() metódus megkeresi a karakterláncot, és megadja az első előfordulásának pozícióját. Ha a karakterlánc többször is előfordul az adott karakterláncban, akkor is az első előfordulásának indexét vagy pozícióját adja vissza.

Példa:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

output:

The position of Tutorials is at: 12

Példa a find()-ra a start argumentum használatával

Megkeresheti a megadott karakterláncban lévő alkarakterláncot, és megadhatja a keresés kezdőpozícióját. Erre a célra a start paraméter használható.

Az alábbi példa a kezdőpozíciót 20-ként, a find() metódust pedig a következőben adja meg: Python a 20. pozíciótól kezdi a keresést. Itt a végpozíció a karakterlánc hossza lesz, tehát a 20. pozíciótól kezdve a karakterlánc végéig keres.

Példa:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

output:

The position of Tutorials is at 48

Példa a find()-ra start és end argumentumokat használva

A start és end paraméterek használatával szűkíthetjük a keresést a teljes karakterlánc keresése helyett.

Példa:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

output:

The position of Tutorials is at 12

Példa a find() metódusra egy adott alkarakterlánc pozíciójának megkereséséhez egy karakterláncban

Tudjuk, hogy a find() függvény segít megtalálni egy alkarakterlánc első előfordulásának indexét. -1 értéket ad vissza, ha az alkarakterlánc nem szerepel az adott karakterláncban. Az alábbi példa az indexet mutatja, amikor a karakterlánc jelen van, és a -1 értéket, amikor a keresett alkarakterlánc nem található.

Példa:

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))

output:

The position of Best site is at: 27
The position of Guru99 is at: -1

Python string rfind()

Az Python Az rfind() függvény hasonló a find() függvényhez, azzal a különbséggel, hogy az rfind() az adott részkarakterlánc legmagasabb indexét adja vissza, míg a find() a legalacsonyabbat, azaz a legelső indexet. Mind az rfind(), mind a find() -1 értéket ad vissza, ha a részkarakterlánc nincs jelen.

Az alábbi példában a „Találkozz” karakterlánc szerepel. Guru99 oktatóanyag oldal. A legjobb oldal ehhez: Python oktatóanyagok!” karakterláncot, és megpróbálja megtalálni a „Tutorials” alkarakterlánc pozícióját a find() és az rfind() függvények segítségével. A „Tutorials” alkarakterlánc kétszer fordul elő a karakterláncban.

Itt van egy példa, ahol a find() és az rfind() is használatos.

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"))

output:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

A kimenet azt mutatja, hogy a find() függvény a megtalált Tutorials legelső alkarakterláncának indexét adja vissza, míg az rfind() függvény a Tutorials alkarakterlánc utolsó indexét adja vissza.

Python string index()

Az Python A string index() egy olyan függvény, amely a find()-hez hasonlóan visszaadja az adott részkarakterlánc pozícióját. Az egyetlen különbség a kettő között az, hogy az index() kivételt dob, ha a részkarakterlánc nincs jelen a karakterláncban, míg a find() -1 értéket ad vissza.

Itt van egy működő példa, amely bemutatja az index() és find() viselkedését.

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"))

output:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

Ugyanazt a pozíciót kapjuk mind a find(), mind az index() függvények esetében. Nézzünk egy példát arra, amikor a megadott alkarakterlánc nincs jelen a karakterláncban.

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"))

output:

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

A fenti példában a „test” alkarakterlánc pozícióját próbáljuk megkeresni. Az alkarakterlánc nincs jelen a megadott karakterláncban, így a find() használatával a pozíció -1-ként jelenik meg, de az index() hibát dob, ahogy fentebb látható.

Egy részkarakterlánc teljes előfordulásának megállapítása

Annak megkereséséhez, hogy egy alkarakterlánc hányszor fordult elő az adott karakterláncban, a find() függvényt fogjuk használni. PythonEgy for ciklus segítségével fogjuk végigjárni a karakterláncot 0-tól a karakterlánc végéig, a find() startIndex paraméterét használva.

A startIndex és count változók 0-ra lesznek inicializálva. A for cikluson belül a find() függvénnyel ellenőrizzük, hogy a megadott karakterláncban szerepel-e a kívánt alkarakterlánc, és a startIndex értéke 0 lesz.

A find() által visszaadott érték, ha nem -1, frissíti a startIndex értékét arra az indexre, ahol a karakterlánc található, és növeli a számláló értékét is.

Íme a működő példa:

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 )

output:

The total count of substring test is:  6

" Tudj meg többet Python String split()

GYIK

Igen. a find() pontosan megegyezik a karakterlánccal, tehát a „Hello”.find(„h”) -1-et ad vissza, míg a „Hello”.find(„H”) 0-t. Először a lower() vagy upper() függvénnyel konvertáld a karakterláncot, ha kis- és nagybetűket nem megkülönböztető keresésre van szükséged.

Az in operátor csak Igaz vagy Hamis értéket ad vissza, hogy megmutassa, létezik-e egy részkarakterlánc. A find() továbbmegy, és az első találat pontos indexét adja vissza, vagy -1 értéket, ha a részkarakterlánc hiányzik.

Igen. A find() függvény negatív kezdő és záró indexeket is elfogad, amelyek a karakterlánc végétől számolódnak. Például: „GuruA 99”.find(“9”, -2) csak az utolsó két karaktert keresi meg, és visszaadja azok pozícióját.

Az str.find() metódus egyszerre egy egyezést keres. Egyetlen hívásban az összes egyezéshez használd a re modult: a re.findall() visszaadja az összes egyező részkarakterláncot, a re.finditer() pedig az egyes kezdőpozíciókkal megegyező egyezésű objektumokat eredményezi.

A find() egy csak karakterláncokat kezelő metódus, így egy listán történő meghívása AttributeError hibát okoz. Egy lista vagy tuple elemének megkereséséhez használd az index() metódust, amely az első egyezés pozícióját adja vissza.

Igen. Egy egyszerű karakterlánc-kereséshez a find() függvény C-ben implementálva van, és gyorsabban fut, mint egy reguláris kifejezés fordítása. Csak akkor használd a re modult, ha mintákra, helyettesítő karakterekre vagy több egyezésre van szükséged.

Gépi tanulásban és nyelvi nyelvhasználatban a find() függvény kulcsszavakat, címkéket vagy elválasztójeleket keres meg a szöveg tisztításakor és tokenizálása során. Az alkarakterlánc jelenlétének vagy elhelyezkedésének észlelése segít a funkciók felépítésében és a modellbemenetek elemzésében.

Igen. A GitHub Copilot automatikusan kiegészíti a find(), rfind() és index() hívásokat egy rövid, a célt leíró megjegyzésből. Az Agentic AI eszközei ennél tovább mennek, megírják a keresési logikát, hozzáadják a kezdő és befejező argumentumokat, és lefuttatják a teszteket.

Foglald össze ezt a bejegyzést a következőképpen: