Heim > Backend-Entwicklung > Python-Tutorial > Wie können wir überlappende Teilstringvorkommen in Python effizient zählen?

Wie können wir überlappende Teilstringvorkommen in Python effizient zählen?

Patricia Arquette
Freigeben: 2024-12-15 11:27:16
Original
414 Leute haben es durchsucht

How Can We Efficiently Count Overlapping Substring Occurrences in Python?

Überlappende String-Vorkommen effektiv zählen

Die Anzahl der Vorkommen eines Teilstrings innerhalb eines Strings zu ermitteln, kann schwierig sein, insbesondere wenn Überlappungen zulässig sind. Bibliotheken wie Pythons String bieten zu diesem Zweck integrierte Methoden wie „count“, berücksichtigen jedoch keine überlappenden Instanzen.

Zählung überlappender Zeichen

Betrachten Sie den folgenden Ansatz :

def overlapping_count(string, substring):
    count = 0
    for i in range(len(string) - len(substring) + 1):
        if string[i:i+len(substring)] == substring:
            count += 1
    return count
Nach dem Login kopieren

Hier iteriert die Funktion durch die Zeichenfolge und untersucht Teilzeichenfolgen der angegebenen Länge und Erhöhen der Anzahl, wenn eine Übereinstimmung gefunden wird. Diese Methode ist unkompliziert, kann aber bei großen Strings relativ langsam sein.

Eine mögliche Optimierung

Aus Leistungsgründen lohnt es sich, einen anderen Ansatz zu erkunden, bei dem die Fähigkeiten von Cython genutzt werden:

import cython

@cython.boundscheck(False)
def faster_occurrences(string, substring):
    cdef int count = 0
    cdef int start = 0
    while True:
        start = string.find(substring, start) + 1
        if start > 0:
            count += 1
        else:
            return count
Nach dem Login kopieren

Mit Cython können wir die Vorteile statischer Typdeklarationen und Just-In-Time (JIT)-Kompilierung nutzen, um die Leistung zu verbessern indem unnötige Typprüfungen und Optimierungen für Python-Code übersprungen werden. Diese optimierte Funktion sollte bei größeren Datensätzen deutlich schneller sein.

Das obige ist der detaillierte Inhalt vonWie können wir überlappende Teilstringvorkommen in Python effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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