Ursprüngliche Frage:
Wie kann ich mehrere Zeichen in einer Zeichenfolge effizient ersetzen? wie & -> &, # -> # usw.?
Der bereitgestellte Code funktioniert zwar, erfordert jedoch mehrere sequentielle Ersetzungen, die möglicherweise ineffizient sind.
strs = strs.replace('&', '\&') strs = strs.replace('#', '\#') ...
Ein effizienterer Ansatz besteht darin, die zu verketten Ersetzungen.
text.replace('&', '\&').replace('#', '\#')
Test: Ersetzen Sie die Zeichen & und # in der Zeichenfolge abc&def#ghi.
Method | Time (μs per loop) |
---|---|
Chaining replacements | 0.814 |
Für das Ersetzen von Zeichen in einem stehen verschiedene andere Methoden zur Verfügung string:
import re rx = re.compile('([&#])') text = rx.sub(r'\', text)
def mk_esc(esc_chars): return lambda s: ''.join(['\' + c if c in esc_chars else c for c in s]) esc = mk_esc('&#') text = esc(text)
chars = "&#" for c in chars: text = text.replace(c, "\" + c)
Anstatt zu überprüfen Um die Existenz jedes Zeichens in der Eingabezeichenfolge zu überprüfen, verwenden Sie einen Iterator, um die zu ersetzenden Zeichen zu durchlaufen. Dies kann die Leistung erheblich verbessern.
Python 3 übertrifft Python 2 bei Zeichenersetzungsaufgaben aufgrund seiner schnelleren String-Manipulationsfähigkeiten.
Das obige ist der detaillierte Inhalt vonWie kann man mehrere Zeichen in einer Zeichenfolge effizient ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!