Heim > Backend-Entwicklung > Python-Tutorial > Wie finde ich das n-te Vorkommen eines Teilstrings in einem String in Python?

Wie finde ich das n-te Vorkommen eines Teilstrings in einem String in Python?

Patricia Arquette
Freigeben: 2024-10-20 07:28:29
Original
589 Leute haben es durchsucht

How to Find the nth Occurrence of a Substring in a String in Python?

Finden des n-ten Vorkommens eines Teilstrings in einem String

Identifizieren des Index, der dem n-ten Vorkommen eines Teilstrings entspricht Eine Aufgabe, die in verschiedenen Programmierszenarien häufig auftritt. In Python gibt es keine integrierte Funktion, die speziell für diesen Zweck entwickelt wurde. Es gibt jedoch mehrere Ansätze, mit denen dieses Ergebnis erzielt werden kann.

Ein einfacher Ansatz besteht darin, eine Schleife zu verwenden, um die Zeichenfolge zu durchlaufen und die Vorkommen der Teilzeichenfolge zu zählen. Der Startindex wird mit dem Ergebnis des ersten Vorkommens initialisiert und die Schleife wird fortgesetzt, bis das n-te Vorkommen gefunden wird.

<code class="python">def find_nth_occurrence(haystack, needle, n):
    index = haystack.find(needle)
    while index >= 0 and n > 1:
        index = haystack.find(needle, index + len(needle))
        n -= 1
    return index</code>
Nach dem Login kopieren

Diese Methode ist effizient und leicht zu verstehen, erfordert jedoch mehrere Durchgänge die Zeichenfolge, was bei großen Zeichenfolgen zeitaufwändig sein kann.

Ein weiterer pythonischerer Ansatz ist die Verwendung regulärer Ausdrücke. Reguläre Ausdrücke bieten eine leistungsstarke und übersichtliche Möglichkeit, Zeichenfolgen zu suchen und zu bearbeiten. Die folgende Funktion verwendet die Methode re.findall(), um alle Vorkommen des Teilstrings zu finden und ruft dann den n-ten Index ab:

<code class="python">import re

def find_nth_occurrence_regex(haystack, needle, n):
    occurrences = re.findall(needle, haystack)
    if len(occurrences) >= n:
        return haystack.index(occurrences[n - 1])
    else:
        return -1</code>
Nach dem Login kopieren

Diese Methode ist schneller als der iterative Ansatz für große Strings, aber sie erfordert den Import eines zusätzlichen Moduls (re). Darüber hinaus ist es für einige Benutzer möglicherweise weniger lesbar als der iterative Ansatz.

Die Wahl zwischen dem iterativen Ansatz und dem Ansatz mit regulärem Ausdruck hängt letztendlich von den spezifischen Anforderungen der jeweiligen Aufgabe ab. Für kleine Strings kann der iterative Ansatz ausreichend sein, während für große Strings der Ansatz mit regulären Ausdrücken möglicherweise eine bessere Leistung bietet.

Das obige ist der detaillierte Inhalt vonWie finde ich das n-te Vorkommen eines Teilstrings in einem String in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage