Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führt man effiziente String-Ersetzungen mithilfe eines Wörterbuchs in Python durch?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-10-19 16:03:30167Durchsuche

How to Perform Efficient String Replacements Using a Dictionary in Python?

So führen Sie mehrere Zeichenfolgenersetzungen mithilfe eines Wörterbuchs durch

In Szenarien, in denen Sie mehrere Ersetzungen innerhalb einer Zeichenfolge basierend auf dem Schlüsselwert vornehmen müssen Paare kann sich die Verwendung eines Wörterbuchs als effektiv erweisen. Hier ist eine Python-Lösung:

<code class="python">import re

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

# Construct a regular expression pattern for all dictionary keys
keys = (re.escape(k) for k in d.keys())
pattern = re.compile(r'\b(' + '|'.join(keys) + r')\b')

# Replace keys with corresponding values
result = pattern.sub(lambda x: d[x.group()], s)
# Output: 'Досуг englishA'</code>

Dieser Ansatz verwendet reguläre Ausdrücke, um die Schlüssel in der Zeichenfolge zu finden, und ersetzt sie durch ihre Werte aus dem Wörterbuch. Um nur ganze Wörter abzugleichen, geben Sie Wortgrenzen (b) im Muster an.

Wenn keine Übereinstimmung ganzer Wörter erforderlich ist, verwenden Sie das Muster:

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

Hinweis: Sortieren Sie in diesem Fall die Wörterbuchschlüssel absteigend nach Länge, um fehlerhafte Ersetzungen zu verhindern, wenn einige Schlüssel Teilzeichenfolgen anderer sind.

Das obige ist der detaillierte Inhalt vonWie führt man effiziente String-Ersetzungen mithilfe eines Wörterbuchs in Python durch?. 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