Häufig hat man ja das Problem, dass mehrere Ersetzungen in Texten gemacht werden müssen. Da replace() immer nur eine Art von Ersetzung vornehmen kann (alle X durch Y), behilft man sich mit einer Aneinanderreihung von replace()-Aufrufen. Sagen wir mal, es sollen alle "X", "Y" und "Z" gelöscht werden. Das sähe mit replace() dann so aus:
Code: Alles auswählen
text = 'fhgfdhgXghsgkhXYsgskgZZZhsfgfgYYshfsZXZkfghXYZfhg'
clean_text = text.replace('X', '').replace('Y', '').replace('Z', '')
Hier kommt nun translate() ins Spiel: Es nimmt für die Übersetzung ein Mapping (z.B. Wörterbuch). Wichtig ist, dass die Schlüssel Ordinals sein müssen, also der "Zahlwert" eines Zeichens. Die Werte können ebenfalls Ordinals sein oder normaler Text (wie bei replace()) oder None, wenn das Zeichen gelöscht werden soll. Hier also obiges Beispiel mit translate():
Code: Alles auswählen
text = 'fhgfdhgXghsgkhXYsgskgZZZhsfgfgYYshfsZXZkfghXYZfhg'
table = dict.fromkeys(map(ord, 'XYZ'))
clean_text = text.translate(table)
Zugegeben, der Aufbau der Übersetzungstabelle wirkt etwas lowlevel, aber das lässt sich natürlich in eine Funktion auslagern, wenn man möchte.