Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man mehrere Zeichen in einer Zeichenfolge effizient ersetzen?

Wie kann man mehrere Zeichen in einer Zeichenfolge effizient ersetzen?

DDD
Freigeben: 2024-12-02 02:52:10
Original
1051 Leute haben es durchsucht

How to Efficiently Replace Multiple Characters in a String?

Beste Methoden zum Ersetzen mehrerer Zeichen in einer Zeichenfolge

Ursprüngliche Frage:
Wie kann ich mehrere Zeichen in einer Zeichenfolge effizient ersetzen? wie & -> &, # -> # usw.?

Erster Ansatz (sequentielle Ersetzung)

Der bereitgestellte Code funktioniert zwar, erfordert jedoch mehrere sequentielle Ersetzungen, die möglicherweise ineffizient sind.

strs = strs.replace('&', '\&')
strs = strs.replace('#', '\#')
...
Nach dem Login kopieren

Zweitens Ansatz (Verkettung von Ersetzungen)

Ein effizienterer Ansatz besteht darin, die zu verketten Ersetzungen.

text.replace('&', '\&').replace('#', '\#')
Nach dem Login kopieren

Leistungsvergleich

Test: Ersetzen Sie die Zeichen & und # in der Zeichenfolge abc&def#ghi.

Method Time (μs per loop)
Chaining replacements 0.814

Alternative Methoden

Für das Ersetzen von Zeichen in einem stehen verschiedene andere Methoden zur Verfügung string:

Verwenden einer Regex

import re

rx = re.compile('([&#])')
text = rx.sub(r'\', text)
Nach dem Login kopieren

Verwenden einer benutzerdefinierten Escape-Funktion

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)
Nach dem Login kopieren

Verwenden von Schleifen

chars = "&#"
for c in chars:
    text = text.replace(c, "\" + c)
Nach dem Login kopieren

Zusätzliche Tipps

Auf Geschwindigkeit optimieren (~2-fache Verbesserung)

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.

Verwenden Sie Python 3

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!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage