Se etter understrenger i Python: Alternativer til 'contains' og 'indexOf'

Se etter understrenger i Python: Alternativer til 'contains' og 'indexOf'
Python

Forstå strengmetoder i Python

Python-programmerere trenger ofte å sjekke om en understreng finnes i en streng. Mens mange språk tilbyr metoder som `contains` eller `indexOf`, har Python sin egen måte å håndtere dette vanlige kravet på. I denne artikkelen skal vi utforske hvordan du kan utføre understrengsjekker i Python effektivt.

Enten du er ny på Python eller går over fra et annet programmeringsspråk, er det avgjørende å forstå disse metodene. Vi vil gi eksempler og forklare de beste fremgangsmåtene for å sjekke understrenger, og sikre at du kan skrive ren og effektiv Python-kode.

Kommando Beskrivelse
in Sjekker om en understreng finnes i en hovedstreng, og returnerer True eller False.
find Returnerer den laveste indeksen i strengen der delstrengen er funnet; returnerer -1 hvis ikke funnet.
def Definerer en funksjonsblokk med kode som bare kjører når den kalles.
for Brukes til å gå over en sekvens (som en liste, tuppel, ordbok, sett eller streng).
if not Betinget setning som kjører kode hvis betingelsen er falsk.
continue Hopper over resten av koden inne i loopen kun for gjeldende iterasjon, og fortsetter deretter med neste iterasjon.

Forstå delstrengsjekker i Python

Skriptene som følger med demonstrerer hvordan du ser etter understrenger i Python ved å bruke to forskjellige metoder: in nøkkelordet og find metode. Det første skriptet definerer en funksjon, contains_substring, som krever to argumenter: main_string og substring. Den kommer tilbake True hvis substring eksisterer innenfor main_string og False ellers. Dette oppnås ved hjelp av in nøkkelord, som er en enkel og effektiv måte å utføre understrengkontroller i Python. Skriptet itererer deretter over en liste med strenger ved å bruke en for løkke, og hvis substring ikke finnes i gjeldende streng, bruker den continue uttalelse for å hoppe til neste iterasjon.

Det andre skriptet bruker en lignende tilnærming, men utnytter find metode i stedet. Funksjonen contains_substring_with_find sjekker om substring er tilstede i main_string ved å returnere True hvis find metoden kommer ikke tilbake -1. De find metoden søker etter substring og returnerer den laveste indeksen der den er funnet, eller -1 hvis den ikke blir funnet. Denne metoden gir mer kontroll hvis du trenger posisjonen til substring, men for en enkel sjekk in søkeordet er mer enkelt. Begge skriptene illustrerer hvordan du effektivt sjekker for understrenger og håndterer tilfeller der understrengen ikke blir funnet, noe som gir ren og lesbar Python-kode.

Hvordan se etter understrenger i Python

Python-skripteksempel som bruker "i" nøkkelord

def contains_substring(main_string, substring):
    return substring in main_string

strings_to_check = ["hello world", "Python programming", "substring search"]
substring = "Python"

for string in strings_to_check:
    if not contains_substring(string, substring):
        continue
    print(f"'{substring}' found in '{string}'")

Finne understrenger ved å bruke Pythons 'finn'-metode

Python-skripteksempel ved å bruke 'finn'-metoden

def contains_substring_with_find(main_string, substring):
    return main_string.find(substring) != -1

strings_to_check = ["example string", "testing find method", "no match here"]
substring = "find"

for string in strings_to_check:
    if not contains_substring_with_find(string, substring):
        continue
    print(f"'{substring}' found in '{string}'")

Utforske alternative strengmetoder i Python

I tillegg til det in nøkkelordet og find metode, tilbyr Python andre strengmetoder som kan være nyttige for å sjekke understrenger. En slik metode er count, som returnerer antall ikke-overlappende forekomster av en delstreng i en streng. Selv om det ikke er en direkte erstatning for contains eller indexOf, kan den brukes til å bestemme om en delstreng eksisterer ved å sjekke om antallet er større enn null. En annen metode er startswith, som sjekker om en streng starter med en spesifisert delstreng. Denne metoden er spesielt nyttig når du trenger å bekrefte prefikser i strenger, for eksempel å sjekke om en URL starter med 'http'.

På samme måte endswith metoden sjekker om en streng slutter med en spesifisert delstreng. Dette er nyttig for å bekrefte filutvidelser eller andre suffikser. Python gir også re modul for mer avanserte understrengsøk ved bruk av regulære uttrykk. De re.search funksjonen tillater mønstertilpasning innenfor strenger, og gir en kraftig måte å finne komplekse delstrenger på. Selv om regulære uttrykk kan være mer komplekse å skrive og forstå, tilbyr de fleksibilitet og kraft for intrikate understrengsøk. Disse alternative metodene gir Python-programmerere en rekke verktøy for å håndtere understrengsjekker, imøtekomme ulike behov og brukstilfeller.

Vanlige spørsmål om delstrengmetoder i Python

  1. Hvordan kan jeg sjekke om en streng inneholder en understreng i Python?
  2. Du kan bruke in nøkkelordet eller find metode for å sjekke om en streng inneholder en understreng.
  3. Hva er forskjellen mellom find og index metoder?
  4. De find metoden returnerer -1 hvis delstrengen ikke blir funnet, mens index metoden gir en ValueError.
  5. Kan jeg bruke regulære uttrykk for understrengsjekker i Python?
  6. Ja, du kan bruke re.search funksjon fra re modul for avanserte understrengsøk.
  7. Hvordan sjekker jeg om en streng starter med en bestemt delstreng?
  8. Du kan bruke startswith metode for å sjekke om en streng starter med en bestemt delstreng.
  9. Hvilken metode kan jeg bruke for å sjekke om en streng slutter med en bestemt delstreng?
  10. De endswith metode kan brukes til å sjekke om en streng slutter med en bestemt delstreng.
  11. Finnes det en metode for å telle forekomster av en delstreng i en streng?
  12. Ja, det count metoden returnerer antall ikke-overlappende forekomster av en delstreng i en streng.
  13. Hvordan kan jeg håndtere tilfeller der delstrengen ikke blir funnet?
  14. Du kan bruke en if uttalelse med not eller sjekk om find returnerer -1 for å håndtere tilfeller der delstrengen ikke blir funnet.
  15. Er det ytelsesforskjeller mellom disse metodene?
  16. Ja, metoder som in og startswith er generelt raskere for enkle kontroller, mens regulære uttrykk kan være tregere, men kraftigere.

Siste tanker om delstrengmetoder i Python

Python har ikke en contains eller indexOf metode som noen andre språk. Det gir imidlertid forskjellige måter å se etter understrenger, for eksempel in nøkkelord, den find metode og regulære uttrykk. Hver metode har sine fordeler, noe som gjør det viktig å velge den rette basert på dine spesifikke behov. Ved å mestre disse teknikkene kan du effektivt håndtere understrengsjekker og skrive ren, effektiv Python-kode.