Heim >Backend-Entwicklung >Python-Tutorial >Wie führt man mehrere String-Ersetzungen mithilfe von Wörterbüchern durch?
Mehrfache Ersetzungen in Zeichenfolgen mithilfe von Wörterbüchern
Angenommen, ein Wörterbuch d ordnet einen Satz von Schlüsseln den gewünschten Ersetzungen zu und eine Zeichenfolge s, die diese Schlüssel enthält, Wie können Sie jedes Vorkommen eines Schlüssels in s durch seinen entsprechenden Wert aus d ersetzen?
Lösung:
Die Verwendung des re-Moduls von Python ermöglicht effiziente Mehrfachersetzungen in Strings mit Wörterbücher:
<code class="python">import re s = 'Спорт not 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) print(result) # Output: 'Досуг not englishA'</code>
Dieser Ansatz verwendet ein reguläres Ausdrucksmuster, das ganze Wörter findet, die zu einem der Schlüssel von d passen. Die Lambda-Funktion in der Sub-Methode führt die Ersetzung mit d durch.
Um Ersetzungen innerhalb von Wörtern und nicht nur an Wortgrenzen zu ermöglichen, ändern Sie das Muster:
<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
In diesem Fall sortieren Sie das Wörterbuch Schlüssel nach Länge absteigend, um Übereinstimmungen von Teilzeichenfolgen zu verhindern.
Das obige ist der detaillierte Inhalt vonWie führt man mehrere String-Ersetzungen mithilfe von Wörterbüchern durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!