Tjek efter understrenge i Python: Alternativer til 'contains' og 'indexOf'

Tjek efter understrenge i Python: Alternativer til 'contains' og 'indexOf'
Python

Forståelse af strengmetoder i Python

Python-programmører skal ofte kontrollere, om der findes en understreng i en streng. Mens mange sprog tilbyder metoder som `contains` eller `indexOf`, har Python sin egen måde at håndtere dette almindelige krav på. I denne artikel vil vi undersøge, hvordan du kan udføre substring-tjek i Python effektivt.

Uanset om du er ny til Python eller skifter fra et andet programmeringssprog, er det afgørende at forstå disse metoder. Vi giver eksempler og forklarer den bedste praksis for kontrol af understrenge, så du kan skrive ren og effektiv Python-kode.

Kommando Beskrivelse
in Kontrollerer, om der findes en understreng i en hovedstreng, og returnerer True eller False.
find Returnerer det laveste indeks i strengen, hvor understrengen findes; returnerer -1, hvis den ikke findes.
def Definerer en funktionsblok med kode, der kun kører, når den kaldes.
for Bruges til at sløjfe over en sekvens (som en liste, tupel, ordbog, sæt eller streng).
if not Betinget sætning, der udfører kode, hvis betingelsen er falsk.
continue Springer resten af ​​koden over i løkken kun for den aktuelle iteration og fortsætter derefter med den næste iteration.

Forståelse af understrengstjek i Python

De medfølgende scripts demonstrerer, hvordan man kontrollerer for understrenge i Python ved hjælp af to forskellige metoder: in søgeord og find metode. Det første script definerer en funktion, contains_substring, der kræver to argumenter: main_string og substring. Det vender tilbage True hvis substring findes inden for main_string og False Ellers. Dette opnås ved hjælp af in søgeord, som er en enkel og effektiv måde at udføre substring-tjek i Python. Scriptet itererer derefter over en liste over strenge ved hjælp af en for sløjfe, og hvis substring ikke findes i den aktuelle streng, bruger den continue sætning for at springe til næste iteration.

Det andet script bruger en lignende tilgang, men udnytter find metode i stedet for. Funktionen contains_substring_with_find tjekker om substring er til stede i main_string ved at vende tilbage True hvis find metoden vender ikke tilbage -1. Det find metode søger efter substring og returnerer det laveste indeks, hvor det er fundet, eller -1 hvis den ikke findes. Denne metode giver mere kontrol, hvis du har brug for placeringen af substring, men for en simpel kontrol in søgeord er mere ligetil. Begge scripts illustrerer, hvordan man effektivt tjekker for understrenge og håndterer tilfælde, hvor understrengen ikke findes, hvilket giver mulighed for ren og læsbar Python-kode.

Sådan tjekker du for understrenge i Python

Python-scripteksempel ved brug af 'i' søgeord

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

Find understrenge ved hjælp af Pythons 'find'-metode

Python-scripteksempel ved hjælp af 'find'-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}'")

Udforskning af alternative strengmetoder i Python

Ud over in søgeord og find metode, tilbyder Python andre strengmetoder, der kan være nyttige til at kontrollere understrenge. En sådan metode er count, som returnerer antallet af ikke-overlappende forekomster af en understreng i en streng. Selvom det ikke er en direkte erstatning for contains eller indexOf, kan den bruges til at bestemme, om der findes en understreng, ved at kontrollere, om antallet er større end nul. En anden metode er startswith, som kontrollerer, om en streng starter med en specificeret understreng. Denne metode er især nyttig, når du skal verificere præfikser i strenge, såsom at tjekke om en URL starter med 'http'.

Tilsvarende endswith metoden kontrollerer, om en streng slutter med en specificeret understreng. Dette er nyttigt til at bekræfte filtypenavne eller andre suffikser. Python leverer også re modul til mere avancerede understrengsøgninger ved hjælp af regulære udtryk. Det re.search funktionen giver mulighed for mønstermatchning inden for strenge, hvilket giver en effektiv måde at finde komplekse understrenge på. Selvom regulære udtryk kan være mere komplekse at skrive og forstå, tilbyder de fleksibilitet og kraft til indviklede understrengsøgninger. Disse alternative metoder giver Python-programmører en række værktøjer til at håndtere substring-tjek, der tilgodeser forskellige behov og anvendelsestilfælde.

Almindelige spørgsmål om understrengsmetoder i Python

  1. Hvordan kan jeg kontrollere, om en streng indeholder en understreng i Python?
  2. Du kan bruge in søgeord eller find metode til at kontrollere, om en streng indeholder en understreng.
  3. Hvad er forskellen mellem find og index metoder?
  4. Det find metoden returnerer -1, hvis understrengen ikke findes, hvorimod index metode rejser en ValueError.
  5. Kan jeg bruge regulære udtryk til understrengskontrol i Python?
  6. Ja, du kan bruge re.search funktion fra re modul til avanceret understrengsøgning.
  7. Hvordan kontrollerer jeg, om en streng starter med en bestemt understreng?
  8. Du kan bruge startswith metode til at kontrollere, om en streng starter med en bestemt understreng.
  9. Hvilken metode kan jeg bruge til at kontrollere, om en streng slutter med en bestemt understreng?
  10. Det endswith metode kan bruges til at kontrollere, om en streng slutter med en bestemt understreng.
  11. Er der en metode til at tælle forekomster af en understreng i en streng?
  12. Ja, den count metode returnerer antallet af ikke-overlappende forekomster af en understreng i en streng.
  13. Hvordan kan jeg håndtere tilfælde, hvor understrengen ikke findes?
  14. Du kan bruge en if erklæring med not eller tjek om find returnerer -1 for at håndtere tilfælde, hvor understrengen ikke findes.
  15. Er der præstationsforskelle mellem disse metoder?
  16. Ja, metoder som f.eks in og startswith er generelt hurtigere til simple kontroller, mens regulære udtryk kan være langsommere, men mere kraftfulde.

Endelige tanker om understrengsmetoder i Python

Python har ikke en contains eller indexOf metode som nogle andre sprog. Det giver dog forskellige måder at tjekke for understrenge, såsom in søgeord, den find metode og regulære udtryk. Hver metode har sine fordele, hvilket gør det vigtigt at vælge den rigtige ud fra dine specifikke behov. Ved at mestre disse teknikker kan du effektivt håndtere understrengskontrol og skrive ren, effektiv Python-kode.