Mit der index()-Methode lässt sich eine Suche auf einem Python String ausführen, um den Index eines Python Sub­strings her­aus­zu­fin­den. Dabei können Sie entweder den ganzen Python String oder nur ein Teil davon als Such­ge­biet festlegen.

Python String index: Syntax und Funk­ti­ons­wei­se

Die Syntax der index-Methode lässt sich sehr leicht erklären. Die Methode kann mit ein, zwei oder drei Ar­gu­men­ten auf­ge­ru­fen werden, wobei die letzten beiden optional sind. Das erste Argument ist immer der Substring, wonach der String un­ter­sucht werden soll. Die beiden op­tio­na­len Argumente sind die Indizes, bei denen die Suche gestartet bzw. gestoppt werden soll. Diese sollten nur übergeben werden, wenn tat­säch­lich nur ein be­stimm­ter Bereich des Strings nach dem Substring un­ter­sucht werden soll. Der folgende Code-Abschnitt ver­an­schau­licht die Syntax dieser Methode:

string.index(substring)
string.index(substring, start, end)
Python

In diesem Beispiel ist string ein be­lie­bi­ger String und substring der Substring, nach dem gesucht werden soll. start und end sind jeweils die start- und end-Indizes der Suche. Wenn kein end-Index angegeben wird (also insgesamt nur zwei Argumente), wird einfach bis zum Ende des Strings gesucht. Die Methode gibt als Rück­ga­be­wert den Index des ersten Vor­kom­mens des Sub­strings zurück. Wenn also ein Substring mehrfach vorkommt, werden alle Vorkommen nach dem ersten von index() ignoriert. Das folgende Beispiel ver­deut­licht die Funk­ti­ons­wei­se der Methode.

string = "Ich bin ein String"
print(string.index("String"))
# Ausgabe: 12
print(string.index("in"))
# Ausgabe: 5 (das "in" in "bin")
print(string.index("in", 7, len(string) - 1))
# Ausgabe: 9 (das "in" in "ein")
print(string.index("in", 7))
# Ausgabe: 9 (das "in" in "ein")
print(string.index("Python"))
# Exception-Fehlermeldung: ValueError
Python

Wie im obigen Beispiel zu sehen ist, wird beim zweiten Aufruf von index() nur der Index des “in”s in “bin” zu­rück­ge­ge­ben. Die anderen Vorkommen von “in” werden ignoriert. Beim letzten Aufruf von index() kann man sehen, dass die Methode eine “Va­lue­Er­ror” Exception zu­rück­gibt, wenn der Substring nicht enthalten ist. Diese Exception wird auch aus­ge­ge­ben, wenn negative Indizes ein­ge­ge­ben werden oder der start-Index größer ist als der end-Index. Falls einer dieser Fälle in Ihrem Programm möglich ist, sollte die Exception ent­spre­chend behandelt werden.

Tipp

Die Ver­ar­bei­tung von Strings ist eine Aufgabe, die in der Python-Pro­gram­mie­rung immer wieder vorkommt. Daher ist es wichtig, dass Strings in einem passenden Format ge­spei­chert und aus­ge­ge­ben werden. In unserem Artikel zum Python-String-Format erklären wir, wie Sie das Format Ihrer Strings an Ihre Zwecke anpassen können.

Al­ter­na­ti­ve: Die find-Methode

Je nachdem, wozu Sie die index-Methode brauchen, könnte die find-Methode eventuell die bessere Wahl sein. Sie ist fast identisch zur index-Methode, mit einem wichtigen Un­ter­schied: Wenn der Substring nicht gefunden wird, wird keine Exception ausgelöst. Statt­des­sen wird einfach -1 zu­rück­ge­ge­ben. Da eine un­be­han­del­te Exception zum Absturz Ihres Programms führen würde, kann dies sehr vor­teil­haft sein, wenn Sie eine mögliche Exception nicht behandeln können oder wollen. Die Be­hand­lung der Exception kann sogar mit einer if-Bedingung simuliert werden, wie im folgenden Beispiel:

string = "Python"
if(string.find("Py") != -1):
    print("Substring enthalten! Index: ", string.find("Py"))
else:
    print("Substring nicht enthalten!")
Python

In diesem Beispiel gibt es im Fall, dass der Substring nicht gefunden wird, eine Ver­zwei­gung, genau wie bei der Be­hand­lung einer Exception. Der größte Un­ter­schied ist, dass find() in diesem Beispiel mehrfach aus­ge­führt werden muss, wenn der Substring gefunden wird.

Tipp

Python ist eine der fle­xi­bels­ten Pro­gram­mier­spra­chen, die es gibt. Ent­spre­chend kann man in dieser Sprache sehr viele Ope­ra­tio­nen auf Strings ausführen. Wir zeigen in einem anderen Artikel mehrere Wege, wie Sie Python Strings ver­glei­chen können.

Beispiele für Python String index

Nun zeigen wir zwei Beispiele dafür, wie index() in einem Programm zum Einsatz kommen kann. Zuerst stellen wir ein einfaches Beispiel vor, dann ein etwas kom­ple­xe­res.

string = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
print("Der zu überprüfende String ist ", string)
while(True):
    sub = input("Substring eingeben: ")
    try:
        print("Der Index ist: ", string.index(sub))
    except:
        print("Der Substring ist nicht enthalten :/")
Python

In diesem Beispiel wird in einem String nach einem Substring gesucht. An­schlie­ßend wird aus­ge­ge­ben, ob der Substring im String enthalten ist und ggf. an welchem Index er steht. In diesem Fall ist der zu un­ter­su­chen­de String vor­be­stimmt, aber der Substring wird von der Nutzerin bzw. dem Nutzer jedes Mal neu ein­ge­ge­ben.

def try_except(start):
    try:
        return string.index(sub, start)
    except:
        return -1
string = input("String eingeben: ")
sub = input("Substring eingeben: ")
vorkommen = 0
start = 0
while(try_except(start) != -1):
    start = try_except(start) + len(sub)
    vorkommen = vorkommen + 1
print("Vorkommen: ", vorkommen)
Python

In diesem Beispiel wird ein von der Nutzerin bzw. dem Nutzer ein­ge­ge­be­ner String nach Vorkommen eines Sub­strings geprüft. Wenn im String ein Vorkommen des Sub­strings gefunden wird, wird die Anzahl der Vorkommen in­kre­men­tiert und die Suche ab dieser Stelle erneut gestartet. Wenn das Ende des Strings erreicht wird, wird die gesamte Anzahl der Vorkommen aus­ge­ge­ben und das Programm beendet.

Tipp

Sie suchen einen Weg, Ihre Web­an­wen­dung schnell und leicht zu ver­öf­fent­li­chen? Dann ist Deploy Now von IONOS die perfekte Plattform für Sie!

Zum Hauptmenü