Python String find()-Methode mit Beispielen

⚡ Intelligente Zusammenfassung

Python Die Methode `find()` ist eine integrierte Funktion, die den Index des ersten Vorkommens einer Teilzeichenkette innerhalb einer Zeichenkette zurückgibt. Sie gibt -1 zurück, wenn die Teilzeichenkette nicht vorhanden ist, um Ausnahmen zu vermeiden.

  • 🔍 Syntax: Die Funktion find() benötigt eine Teilzeichenkette sowie optional einen Start- und Endindex, um den Suchbereich einzugrenzen.
  • 🎯 Erstes Spiel: Die Funktion find() gibt den niedrigsten Index des ersten Vorkommens zurück, wobei von links nach rechts gescannt wird.
  • Nicht gefunden: Die Funktion find() gibt -1 zurück, anstatt einen Fehler auszulösen, wenn die Teilzeichenkette fehlt.
  • 🔁 find(): Die Methode rfind() gibt den höchsten Index zurück, indem sie von rechts nach links sucht.
  • ⚠️ Index(): Die Methode index() verhält sich wie find(), löst aber einen ValueError aus, wenn die Teilzeichenkette fehlt.
  • 🤖 KI-Unterstützung: KI-Codierungsassistenten generieren die find()-Logik und ermöglichen die Suche nach Teilstrings in NLP-Textpipelines.

Python Zeichenfolge finden()

Was ist Python Zeichenfolge finden()?

Python Zeichenfolge finden() ist eine Funktion, die in der Python Bibliothek zur Ermittlung des Index des ersten Vorkommens einer Teilzeichenkette in einer gegebenen Zeichenkette. Die Funktion `find()` gibt -1 zurück, anstatt eine Ausnahme auszulösen, wenn die angegebene Teilzeichenkette in der gegebenen Zeichenkette nicht vorhanden ist. Pythonam häufigsten verwendet String-Methoden zum Auffinden von Text.

Syntax von Python Zeichenfolge finden()

Die grundlegende Syntax der Python Die Funktion find() lautet wie folgt:

string.find(substring,start,end)

Parameter für die find()-Methode

Hier sind die drei Parameter der Funktion find() in Python:

  • Teilzeichenfolge: Die Teilzeichenkette, nach der Sie in der angegebenen Zeichenkette suchen möchten.
  • Anfang(Optional) Der Startwert, ab dem die Suche nach der Teilzeichenkette beginnt. Standardmäßig ist dieser Wert 0.
  • Ende(Optional) Der Endwert, an dem die Suche nach der Teilzeichenkette beendet wird. Standardmäßig entspricht der Wert der Länge der Zeichenkette.

Beispiel einer find()-Methode mit Standardwerten

Die an die Python Die `find()`-Methode erwartet die Teilzeichenkette, also die zu suchende Zeichenkette, plus Start- und Endwert. Der Startwert ist standardmäßig 0, der Endwert entspricht der Länge der Zeichenkette.

In diesem Beispiel verwenden wir die find()-Methode in Python mit Standardwerten.

Die Methode `find()` sucht nach der Teilzeichenkette und gibt die Position ihres ersten Vorkommens zurück. Selbst wenn die Teilzeichenkette mehrfach in der Zeichenkette vorkommt, wird der Index bzw. die Position des ersten Vorkommens zurückgegeben.

Ejemplo:

mystring = "Meet Guru99 Tutorials Site.besten site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

Ausgang:

The position of Tutorials is at: 12

Beispiel für find() mit Startargument

Sie können in der angegebenen Zeichenkette nach einer Teilzeichenkette suchen und die Startposition der Suche festlegen. Der Parameter „start“ dient diesem Zweck.

Das folgende Beispiel legt die Startposition als 20 fest und verwendet die Methode find() in Python Die Suche beginnt bei Position 20. Die Endposition entspricht der Länge der Zeichenkette, daher wird ab Position 20 bis zum Ende der Zeichenkette gesucht.

Ejemplo:

mystring = "Meet Guru99 Tutorials Site.besten site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

Ausgang:

The position of Tutorials is at 48

Beispiel für find() mit Start- und Endargumenten

Mithilfe der Start- und Endparameter können wir die Suche einschränken, anstatt die gesamte Zeichenkette zu durchsuchen.

Ejemplo:

mystring = "Meet Guru99 Tutorials Site.besten site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

Ausgang:

The position of Tutorials is at 12

Beispiel für die Verwendung der find()-Methode zum Ermitteln der Position einer gegebenen Teilzeichenkette in einer Zeichenkette

Wir wissen, dass die Funktion `find()` uns hilft, den Index des ersten Vorkommens einer Teilzeichenkette zu finden. Sie gibt -1 zurück, wenn die Teilzeichenkette in der gegebenen Zeichenkette nicht vorhanden ist. Das folgende Beispiel zeigt den Index, wenn die Zeichenkette vorhanden ist, und -1, wenn die gesuchte Teilzeichenkette nicht gefunden wird.

Ejemplo:

mystring = "Meet Guru99 Tutorials Site.besten site for Python Tutorials!"
print("The position of besten site is at:", mystring.find("besten site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

Ausgang:

The position of besten site is at: 27
The position of Guru99 is at: -1

Python Zeichenfolge rfind()

Das Python Die Funktion `rfind()` ähnelt der Funktion `find()`, mit dem einzigen Unterschied, dass `rfind()` den höchsten Index der angegebenen Teilzeichenkette zurückgibt, während `find()` den niedrigsten, also den ersten Index, zurückgibt. Sowohl `rfind()` als auch `find()` geben -1 zurück, wenn die Teilzeichenkette nicht vorhanden ist.

Im folgenden Beispiel haben wir die Zeichenkette „Meet Guru99 Tutorials-Site. beste Seite für Python Tutorials!" und versucht, die Position der Teilzeichenkette Tutorials mithilfe von find() und rfind() zu finden. Die Teilzeichenkette Tutorials kommt zweimal in der Zeichenkette vor.

Hier ist ein Beispiel, in dem sowohl find() als auch rfind() verwendet werden.

mystring = "Meet Guru99 Tutorials Site.besten site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

Ausgang:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

Die Ausgabe zeigt, dass find() den Index der allerersten gefundenen Teilzeichenkette „Tutorials“ angibt, während rfind() den letzten Index der Teilzeichenkette „Tutorials“ angibt.

Python Zeichenfolgenindex()

Das Python Die Funktion `index()` gibt, genau wie `find()`, die Position einer gegebenen Teilzeichenkette zurück. Der einzige Unterschied besteht darin, dass `index()` eine Ausnahme auslöst, wenn die Teilzeichenkette nicht in der Zeichenkette enthalten ist, während `find()` den Wert -1 zurückgibt.

Hier ist ein funktionierendes Beispiel, das das Verhalten von index() und find() zeigt.

mystring = "Meet Guru99 Tutorials Site.besten site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

Ausgang:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

Sowohl `find()` als auch `index()` liefern die gleiche Position. Betrachten wir ein Beispiel, in dem die gesuchte Teilzeichenkette nicht in der Zeichenkette enthalten ist.

mystring = "Meet Guru99 Tutorials Site.besten site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

Ausgang:

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

Im obigen Beispiel versuchen wir, die Position der Teilzeichenkette „test“ zu finden. Da die Teilzeichenkette in der gegebenen Zeichenkette nicht vorhanden ist, liefert `find()` die Position -1. Die Verwendung von `index()` hingegen führt zu einem Fehler, wie oben gezeigt.

Um das Gesamtvorkommen einer Teilzeichenfolge zu ermitteln

Um die Gesamtzahl der Vorkommen einer Teilzeichenkette in der gegebenen Zeichenkette zu ermitteln, verwenden wir die Funktion find() in PythonWir werden die Zeichenkette mit einer for-Schleife von 0 bis zum Ende der Zeichenkette durchlaufen und dabei den Parameter startIndex der Funktion find() verwenden.

Die Variablen startIndex und count werden mit 0 initialisiert. Innerhalb der for-Schleife prüfen wir mit find() und startIndex = 0, ob die Teilzeichenkette in der gegebenen Zeichenkette vorhanden ist.

Der von find() zurückgegebene Wert wird, falls er nicht -1 ist, auf den Index aktualisiert, an dem die Zeichenkette gefunden wird, und der Zählerwert wird ebenfalls erhöht.

Hier ist das Arbeitsbeispiel:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

Ausgang:

The total count of substring test is:  6

" Lerne mehr über Python Zeichenfolge split()

Häufig gestellte Fragen

Ja. `find()` findet die Teilzeichenkette exakt, daher gibt `"Hello".find("h")` -1 zurück, während `"Hello".find("H")` 0 zurückgibt. Konvertieren Sie die Zeichenkette zuerst mit `lower()` oder `upper()`, wenn Sie eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung benötigen.

Der Operator `in` gibt nur `True` oder `False` zurück, um anzuzeigen, ob eine Teilzeichenkette existiert. `find()` geht noch einen Schritt weiter und gibt den genauen Index des ersten Treffers zurück oder -1, falls die Teilzeichenkette nicht vorhanden ist.

Ja. Die Funktion `find()` akzeptiert negative Start- und Endindizes, die vom Ende der Zeichenkette aus gezählt werden. Zum Beispiel: „Guru99”.find(“9”, -2) sucht nur die letzten beiden Zeichen und gibt deren Position zurück.

Die Methode `str.find()` findet jeweils eine Übereinstimmung. Um alle Übereinstimmungen mit einem einzigen Aufruf zu finden, verwenden Sie das Modul `re`: `re.findall()` gibt alle übereinstimmenden Teilstrings zurück, und `re.finditer()` liefert Match-Objekte mit jeder Startposition.

Die Methode `find()` kann nur Zeichenketten verarbeiten. Daher führt ihr Aufruf auf einer Liste zu einem `AttributeError`. Um ein Element in einer Liste oder einem Tupel zu finden, verwenden Sie stattdessen die Methode `index()`, die die Position des ersten Treffers zurückgibt.

Ja. Für eine einfache Teilstringsuche ist `find()` in C implementiert und läuft schneller als das Kompilieren eines regulären Ausdrucks. Verwenden Sie das Modul `re` nur, wenn Sie Muster, Wildcards oder mehrere Treffer benötigen.

Im maschinellen Lernen und der natürlichen Sprachverarbeitung (NLP) findet die Funktion `find()` Schlüsselwörter, Tags oder Trennzeichen beim Bereinigen und Tokenisieren von Texten. Das Erkennen, ob eine Teilzeichenkette vorhanden ist oder wo sie sich befindet, hilft beim Erstellen von Merkmalen und beim Parsen der Modelleingaben.

Ja. GitHub Copilot vervollständigt Aufrufe von `find()`, `rfind()` und `index()` anhand eines kurzen Kommentars, der Ihr Ziel beschreibt. Die KI-Tools von Agentic gehen noch einen Schritt weiter: Sie schreiben die Suchlogik, fügen Start- und Endargumente hinzu und führen Ihre Tests aus.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: