Was ist der effizienteste Weg zu finden, eine von mehreren Zeichenketten in Python?

Habe ich eine Liste von möglichen Teilstrings, z.B. ['cat', 'Fisch', 'Hund']. In der Praxis enthält die Liste Hunderte von Einträgen.

Ich bin mit der Verarbeitung einer Zeichenfolge, und das, was ich Suche zu finden ist der index des ersten Auftretens von jeder dieser Teilstrings.

Zu klären, für '012cat" das Ergebnis ist 3, und für '0123dog789cat" das Ergebnis ist 4.

Ich muss auch wissen, welche Teilstring gefunden wurde (z.B. den index in der substring-Liste oder der text selbst), oder zumindest die Länge der Teilzeichenfolge übereinstimmt.

Offensichtlichen brute-force-Möglichkeiten, um dies zu erreichen, fragte ich mich, ob es irgendeine elegante Python/Regex-Lösung für dieses.

Dank,
Rax

  • Ist die Liste der Zeichenketten-Konstante? Ich Frage deshalb, weil mit Regex-Lösungen beinhalten meist eine Vorberechnung des regulären Ausdrucks (rsp. die Liste der Teilstrings in Ihrem Fall). Wäre das precomputation amortisieren sich über viele suchen?
InformationsquelleAutor Roee Adler | 2009-05-09
Schreibe einen Kommentar