Python String find() Metode med eksempler

⚡ Smart opsummering

Python string find() er en indbygget metode, der returnerer indekset for den første forekomst af en delstreng i en streng. Den returnerer -1, når delstrengen ikke er til stede, og undgår dermed undtagelser.

  • 🔍 Syntaks: find() tager en delstreng plus valgfrie start- og slutindekser for at begrænse søgeområdet.
  • 🎯 Første kamp: find() returnerer det laveste indeks for den første forekomst og scanner fra venstre mod højre.
  • Ikke fundet: find() returnerer -1 i stedet for at generere en fejl, når delstrengen mangler.
  • 🔁 rfind(): Metoden rfind() returnerer det højeste indeks og søger i stedet fra højre side.
  • ⚠️ indeks(): Metoden index() opfører sig som find(), men genererer en ValueError, når delstrengen mangler.
  • 🤖 AI assistance: AI-kodningsassistenter genererer find()-logik og power substring-søgning i NLP-tekstpipelines.

Python Streng find()

Hvad er Python Streng find()?

Python Streng find() er en funktion tilgængelig i Python bibliotek til at finde indekset for den første forekomst af en delstreng inden for en given streng. Funktionen find() returnerer -1 i stedet for at udløse en undtagelse, når den angivne delstreng ikke er til stede i den givne streng. Det er en af Pythonmest brugte strengmetoder til at finde tekst.

Syntaks af Python string find()

Den grundlæggende syntaks for Python find()-funktionen er som følger:

string.find(substring,start,end)

Parametre for find() metoden

Her er de tre parametre for find()-funktionen i Python:

  • understrengDen delstreng, du vil søge efter i den givne streng.
  • starte: (valgfrit) Startværdien, hvorfra søgningen efter delstrengen starter. Som standard er den 0.
  • ende: (valgfrit) Den slutværdi, hvor søgningen efter delstrengen slutter. Som standard er værdien strengens længde.

Eksempel på find()-metode med standardværdier

Parametrene, der sendes til Python find()-metoden er delstrengen, dvs. den streng, du vil søge efter, plus start og slut. Startværdien er som standard 0, og slutværdien er strengens længde.

I dette eksempel bruger vi find()-metoden i Python med standardværdier.

Metoden find() søger efter delstrengen og angiver positionen for den allerførste forekomst af delstrengen. Hvis delstrengen forekommer flere gange i den givne streng, returnerer den stadig indekset eller positionen for den første.

Eksempel:

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

Output:

The position of Tutorials is at: 12

Eksempel på find() ved brug af startargument

Du kan søge efter delstrengen i den givne streng og angive startpositionen, hvorfra søgningen skal begynde. Startparameteren kan bruges til dette formål.

Eksemplet nedenfor angiver startpositionen som 20, og find()-metoden i Python vil begynde søgningen fra position 20. Her vil slutpositionen være strengens længde, så den søger til slutningen af ​​strengen fra position 20 og fremefter.

Eksempel:

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

Output:

The position of Tutorials is at 48

Eksempel på find() ved brug af start- og slutargumenter

Ved at bruge start- og slutparametrene kan vi begrænse søgningen i stedet for at søge i hele strengen.

Eksempel:

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

Output:

The position of Tutorials is at 12

Eksempel på find()-metoden til at finde positionen af ​​en given delstreng i en streng

Vi ved, at find() hjælper os med at finde indekset for den første forekomst af en delstreng. Den returnerer -1, hvis delstrengen ikke findes i den givne streng. Eksemplet nedenfor viser indekset, når strengen findes, og -1, når den delstreng, vi søger efter, ikke findes.

Eksempel:

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

Output:

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

Python streng rfind()

Python Funktionen rfind() minder om find()-funktionen, med den eneste forskel at rfind() giver det højeste indeks for den givne delstreng, mens find() giver det laveste, det vil sige det allerførste indeks. Både rfind() og find() returnerer -1 hvis delstrengen ikke er til stede.

I eksemplet nedenfor har vi en streng "Mød Guru99 Tutorials websted. Bedste site for Python Vejledninger!” og vil forsøge at finde positionen af ​​delstrengen Tutorials ved hjælp af find() og rfind(). Delstrengen Tutorials forekommer to gange i strengen.

Her er et eksempel, hvor både find() og rfind() bruges.

mystring = "Meet Guru99 Tutorials Site.Bedste 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

Outputtet viser, at find() giver indekset for den allerførste Tutorials-understreng, den finder, mens rfind() giver det sidste indeks for understrengen Tutorials.

Python string index()

Python `string index()` er en funktion, der giver dig positionen af ​​den givne delstreng, ligesom `find().` Den eneste forskel mellem de to er, at `index()` kaster en undtagelse, hvis delstrengen ikke er til stede i strengen, mens `find()` returnerer -1.

Her er et fungerende eksempel, der viser adfærden af ​​index() og find().

mystring = "Meet Guru99 Tutorials Site.Bedste 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

Vi får den samme position for både find() og index(). Lad os se et eksempel, hvor den givne delstreng ikke er til stede i strengen.

mystring = "Meet Guru99 Tutorials Site.Bedste 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

I ovenstående eksempel forsøger vi at finde positionen af ​​delstrengen "test". Delstrengen findes ikke i den givne streng, så ved at bruge find() får vi positionen som -1, men for index() kaster det en fejl, som vist ovenfor.

For at finde den samlede forekomst af en understreng

For at finde det samlede antal gange en delstreng er forekommet i den givne streng, bruger vi find()-funktionen i PythonVi vil gennemløbe strengen ved hjælp af en for-løkke fra 0 til slutningen af ​​strengen, idet vi bruger startIndex-parameteren til find().

Variablerne startIndex og count initialiseres til 0. Inde i for-løkken kontrollerer vi, om delstrengen er til stede i den givne streng, ved hjælp af find() med startIndex som 0.

Værdien, der returneres fra find(), vil, hvis ikke være -1, opdatere startIndex til det indeks, hvor strengen findes, og vil også øge count-værdien.

Her er arbejdseksemplet:

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

" Lær mere om Python String split()

Ofte Stillede Spørgsmål

Ja. find() matcher delstrengen præcist, så "Hello".find("h") returnerer -1, mens "Hello".find("H") returnerer 0. Konverter strengen med lower() eller upper() først, når du har brug for en søgning, der ikke skelner mellem store og små bogstaver.

Operatoren `in` returnerer kun True eller False for at vise, om en delstreng findes. `find()` går videre og returnerer det nøjagtige indeks for det første match, eller -1, når delstrengen mangler.

Ja. find() accepterer negative start- og slutindekser, som tæller fra slutningen af ​​strengen. For eksempel, “Guru99”.find(“9”, -2) søger kun efter de sidste to tegn og returnerer deres position.

Metoden str.find() finder ét match ad gangen. For alle match i et enkelt kald skal du bruge re-modulet: re.findall() returnerer alle matchende delstrenge, og re.finditer() giver match-objekter med hver startposition.

find() er en metode, der kun bruger strenge, så kald af den på en liste genererer en AttributeError. For at finde et element i en liste eller tuple skal du i stedet bruge index()-metoden, som returnerer positionen for det første match.

Ja. For en simpel søgning i delstrenge er find() implementeret i C og kører hurtigere end at kompilere et regulært udtryk. Brug kun re-modulet, når du har brug for mønstre, jokertegn eller flere matches.

I maskinlæring og NLP finder find() nøgleord, tags eller afgrænsere, mens tekst renses og tokeniseres. Detektion af, om en delstreng er til stede, eller hvor den er placeret, hjælper med at bygge funktioner og analysere modelinput.

Ja. GitHub Copilot fuldfører automatisk find(), rfind() og index() kald fra en kort kommentar, der beskriver dit mål. Agentic AI-værktøjer går videre, skriver søgelogikken, tilføjer start- og slutargumenter og kører dine tests.

Opsummer dette indlæg med: