Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich das n-te Vorkommen eines Teilstrings in Python finden?

Wie kann ich das n-te Vorkommen eines Teilstrings in Python finden?

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 07:23:29557Durchsuche

How Can I Find the nth Occurrence of a Substring in Python?

Effizientes Auffinden des n-ten Vorkommens eines Teilstrings in Python

Das Finden des Index des n-ten Vorkommens eines Teilstrings in Python stellt eine scheinbar einfache Aufgabe für Programmierbegeisterte dar . Um dies auf möglichst pythonische Weise zu erreichen, untersuchen wir verschiedene Ansätze.

Iterative Methode für nicht überlappende Vorkommen

Ein einfacher und effizienter Ansatz ist die iterative Suche nach Vorkommen bis das n-te Vorkommen gefunden wird:

<code class="python">def find_nth(haystack, needle, n):
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start + len(needle))
        n -= 1
    return start</code>

Diese Funktion iteriert durch den Heuhaufen und erhöht den Startindex um die Länge der Nadel, bis das n-te Vorkommen gefunden wird.

Iterativ Methode für überlappende Vorkommen

Wenn überlappende Vorkommen berücksichtigt werden müssen, kann der iterative Ansatz geändert werden:

<code class="python">def find_nth_overlapping(haystack, needle, n):
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start + 1)
        n -= 1
    return start</code>

Diese Funktion erhöht den Startindex um 1 statt um die Nadellänge , wodurch nach überlappenden Vorkommnissen gesucht werden kann.

Beide Methoden folgen den Python-Prinzipien der Einfachheit, Flachheit und Lesbarkeit und eignen sich daher für eine pythonische Lösung dieses Problems.

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

Stellungnahme:
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