veröffentlicht am: 20.04.2020 zuletzt aktualisiert am: 02.02.2023
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.
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
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
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!
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig