Sehr oft müssen wir als Programmierer herausfinden, ob sich eine bestimmte Zeichenfolge in einem uns vorliegenden Text befindet.
Die unterschiedlichen Programmiersprachen bieten dazu verschiedene Methoden und Funktionen an.
In Python können wir den Operator in benutzen, über dessen Verwendung ich dir gleich mehr erzähle.
1. String in String finden mit index und in
Du kannst mittels der Methode index einfach ermitteln, ob ein String in einem anderen String enthalten ist.
Um jedoch das Gegenteil zu ermitteln, bietet sich eine andere Methode an.
string = 'HelloWorld' print(string.index('W')) # 5 print(bool(string.index('W'))) # True print(string.index('X')) # ValueError print(bool(string.index('X'))) # ValueError
Wie du siehst, bekommst du einen ValueError, wenn du eine Zeichenkette suchst, die im String nicht enthalten ist.
Du kannst auch darum herum arbeiten, indem du zu diesem Zweck eine eigene Funktion schreibst:
def BuchstabeInZeichenkette(Buchstabe, Zeichenkette): try: Zeichenkette.index(Buchstabe) return True except ValueError: return False print(BuchstabeInZeichenkette('W', 'HelloWorld')) # True print(BuchstabeInZeichenkette('World', 'HelloWorld')) # True print(BuchstabeInZeichenkette('X', 'HelloWorld')) # False
Einfacher jedoch ist es, den Operator in zu verwenden, welcher mit True oder False angibt, ob der String im zu prüfenden String vorhanden ist.
string = 'HelloWorld' print('Hello' in string) # True print('Hallo' in string) # False
2. “in” in eigenen Klassen mit __contains__
Um eigene Klassen zu schreiben, die den Operator in unterstützen, musst du lediglich die magic method __contains__, wie im folgenden Beispiel gezeigt, implementieren:
class Container(object): def __init__(self, text): self.text = text def __contains__(self, string): return string in self.text container = Container('CodeCitrus') print('Code' in container) # True print('Hello' in container) # False
3. Fazit
Zu ermitteln, ob sich ein Buchstabe oder eine Zeichenkette in einer anderen Zeichenkette befindet ist leicht mit in und lässt sich mittels der Python magic method __contains__ auch einfach in eigene Klassen implementieren, was uns auch hier das Leben wesentlich vereinfachen kann.
Hast du irgendetwas nicht verstanden? Hast du Anregungen oder Verbesserungsvorschläge? Hat dir dieser Artikel gefallen? Schreib mir bitte einen Kommentar!
Schreibe einen Kommentar