Wie führt man mithilfe eines Wörterbuchs in Python effizient mehrere String-Ersetzungen durch?

Susan Sarandon
Freigeben: 2024-10-19 16:02:02
Original
176 Leute haben es durchsucht

How to Perform Multiple String Replacements Efficiently Using a Dictionary in Python?

Ersetzen mehrerer Zeichenfolgen mit einem Wörterbuch

In vielen Programmierszenarien ist es erforderlich, bestimmte Wörter oder Phrasen innerhalb einer Zeichenfolge durch Werte aus einem Wörterbuch zu ersetzen. Um dieser Herausforderung zu begegnen, gibt es mehrere Ansätze, die die leistungsstarken String-Manipulationsfunktionen von Python nutzen.

Eine effektive Methode ist die Verwendung des re-Moduls:

<code class="python">import re

s = 'Спорт russianA'
d = {'Спорт': 'Досуг', 'russianA': 'englishA'}

keys = (re.escape(k) for k in d.keys())
pattern = re.compile(r'\b(' + '|'.join(keys) + r')\b')
result = pattern.sub(lambda x: d[x.group()], s)</code>
Nach dem Login kopieren

Dieser Code verwendet re.compile() Funktion zum Erstellen eines Musters für reguläre Ausdrücke (Regex), das den Schlüsseln des Wörterbuchs als ganze Wörter entspricht. Die Funktion re.escape() wird verwendet, um zu verhindern, dass Sonderzeichen in den Schlüsseln die Regex-Syntax beeinträchtigen.

Sobald das Muster erstellt ist, wird es mithilfe der Methode sub() auf die Zeichenfolge s angewendet. Die an sub() übergebene Lambda-Funktion extrahiert den übereinstimmenden Schlüssel aus dem Übereinstimmungsobjekt für reguläre Ausdrücke (x) und ersetzt ihn durch den entsprechenden Wert aus dem Wörterbuch (d[x.group()]). Die resultierende Zeichenfolge wird in der Ergebnisvariablen gespeichert.

In diesem Beispiel wäre die Ausgabe „Досуг englishA“, da die Wörter „Спорт“ und „russianA“ in der Zeichenfolge „Спорт russianA“ durch ihre ersetzt werden Werte aus dem Wörterbuch.

Es ist wichtig zu beachten, dass das bei diesem Ansatz erstellte Regex-Muster nur mit ganzen Wörtern übereinstimmt. Wenn Sie passende Teilzeichenfolgen innerhalb von Wörtern benötigen, kann ein anderes Muster verwendet werden:

<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
Nach dem Login kopieren

In diesem Szenario sollten Sie jedoch sicherstellen, dass die Wörterbuchschlüssel in absteigender Reihenfolge nach Länge sortiert sind, um zu verhindern, dass Teilzeichenfolgen abgeglichen werden falsch.

Das obige ist der detaillierte Inhalt vonWie führt man mithilfe eines Wörterbuchs in Python effizient mehrere String-Ersetzungen durch?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!