Söker efter delsträngar i Python: Alternativ till "contains" och "indexOf"

Söker efter delsträngar i Python: Alternativ till contains och indexOf
Python

Förstå strängmetoder i Python

Python-programmerare behöver ofta kontrollera om en delsträng finns i en sträng. Medan många språk erbjuder metoder som `contains` eller `indexOf`, har Python sitt eget sätt att hantera detta vanliga krav. I den här artikeln kommer vi att undersöka hur du kan utföra delsträngskontroller i Python effektivt.

Oavsett om du är ny på Python eller byter från ett annat programmeringsspråk är det viktigt att förstå dessa metoder. Vi kommer att ge exempel och förklara de bästa metoderna för att kontrollera delsträngar, så att du kan skriva ren och effektiv Python-kod.

Kommando Beskrivning
in Kontrollerar om en delsträng finns inom en huvudsträng och returnerar True eller False.
find Returnerar det lägsta indexet i strängen där delsträngen hittas; returnerar -1 om den inte hittas.
def Definierar ett funktionsblock med kod som bara körs när det anropas.
for Används för att loopa över en sekvens (som en lista, tuppel, ordbok, uppsättning eller sträng).
if not Villkorssats som exekverar kod om villkoret är falskt.
continue Hoppar över resten av koden inuti slingan endast för den aktuella iterationen och fortsätter sedan med nästa iteration.

Förstå delsträngskontroller i Python

Skripten som tillhandahålls visar hur man söker efter delsträngar i Python med två olika metoder: den in nyckelord och find metod. Det första skriptet definierar en funktion, contains_substring, som kräver två argument: main_string och substring. Den återkommer True om substring finns inom main_string och False annat. Detta uppnås med hjälp av in nyckelord, vilket är ett enkelt och effektivt sätt att utföra delsträngskontroller i Python. Skriptet itererar sedan över en lista med strängar med hjälp av en for loop, och om substring inte hittas i den aktuella strängen, använder den continue uttalande för att hoppa till nästa iteration.

Det andra skriptet använder ett liknande tillvägagångssätt men utnyttjar find metod istället. Funktionen contains_substring_with_find kontrollerar om substring finns i main_string genom att återvända True om find metoden återkommer inte -1. De find metod söker efter substring och returnerar det lägsta indexet där det finns, eller -1 om den inte hittas. Denna metod ger mer kontroll om du behöver positionen för substring, men för en enkel kontroll in sökord är enklare. Båda skripten illustrerar hur man effektivt söker efter delsträngar och hanterar fall där delsträngen inte hittas, vilket möjliggör ren och läsbar Python-kod.

Hur man söker efter delsträngar i Python

Python-skriptexempel som använder "in" nyckelord

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

Hitta delsträngar med Pythons 'hitta' metod

Python-skriptexempel med "hitta"-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}'")

Utforska alternativa strängmetoder i Python

Utöver in nyckelord och find metod, erbjuder Python andra strängmetoder som kan vara användbara för att kontrollera delsträngar. En sådan metod är count, som returnerar antalet icke-överlappande förekomster av en delsträng i en sträng. Även om det inte är en direkt ersättning för contains eller indexOf, kan den användas för att avgöra om en delsträng existerar genom att kontrollera om antalet är större än noll. En annan metod är startswith, som kontrollerar om en sträng börjar med en angiven delsträng. Den här metoden är särskilt användbar när du behöver verifiera prefix i strängar, som att kontrollera om en URL börjar med 'http'.

På samma sätt endswith metod kontrollerar om en sträng slutar med en specificerad delsträng. Detta är användbart för att verifiera filtillägg eller andra suffix. Python tillhandahåller också re modul för mer avancerade delsträngsökningar med reguljära uttryck. De re.search funktionen möjliggör mönstermatchning inom strängar, vilket ger ett kraftfullt sätt att hitta komplexa delsträngar. Även om reguljära uttryck kan vara mer komplexa att skriva och förstå, erbjuder de flexibilitet och kraft för intrikata delsträngsökningar. Dessa alternativa metoder ger Python-programmerare en mängd olika verktyg för att hantera delsträngskontroller, tillgodose olika behov och användningsfall.

Vanliga frågor om delsträngsmetoder i Python

  1. Hur kan jag kontrollera om en sträng innehåller en delsträng i Python?
  2. Du kan använda in nyckelordet eller find metod för att kontrollera om en sträng innehåller en delsträng.
  3. Vad är skillnaden mellan find och index metoder?
  4. De find metod returnerar -1 om delsträngen inte hittas, medan index metod väcker ett ValueError.
  5. Kan jag använda reguljära uttryck för delsträngskontroller i Python?
  6. Ja, du kan använda re.search funktion från re modul för avancerade delsträngssökningar.
  7. Hur kontrollerar jag om en sträng börjar med en specifik delsträng?
  8. Du kan använda startswith metod för att kontrollera om en sträng börjar med en specifik delsträng.
  9. Vilken metod kan jag använda för att kontrollera om en sträng slutar med en viss delsträng?
  10. De endswith metod kan användas för att kontrollera om en sträng slutar med en viss delsträng.
  11. Finns det en metod för att räkna förekomster av en delsträng i en sträng?
  12. Ja den count metod returnerar antalet icke-överlappande förekomster av en delsträng i en sträng.
  13. Hur kan jag hantera fall där delsträngen inte hittas?
  14. Du kan använda en if uttalande med not eller kolla om find returnerar -1 för att hantera fall där delsträngen inte hittas.
  15. Finns det skillnader i prestanda mellan dessa metoder?
  16. Ja, metoder som in och startswith är i allmänhet snabbare för enkla kontroller, medan reguljära uttryck kan vara långsammare men kraftfullare.

Slutliga tankar om delsträngsmetoder i Python

Python har inte en contains eller indexOf metod som vissa andra språk. Det ger dock olika sätt att leta efter delsträngar, till exempel in nyckelord, den find metod och reguljära uttryck. Varje metod har sina fördelar, vilket gör det viktigt att välja rätt utifrån dina specifika behov. Genom att behärska dessa tekniker kan du effektivt hantera delsträngskontroller och skriva ren, effektiv Python-kod.