Zeichen ersetzen/austauschen mit Python: String replace('alt', 'neu', [Anzahl])
Bei der Arbeit mit Strings ist es oft notwendig, Zeichenketten bzw. Teile des Inhalts auszutauschen. Python bietet mit der Funktion variable.replace("alt", "neu")
eine einfache Möglichkeit. Die Funktion zum Austauschen bzw. Ersetzen von Zeichenfolgen ist nicht auf einzelne Buchstaben begrenzt. Im folgenden Beispiel wollen wir in dem String alle DM durch Euro ersetzen (wenn das auch schon ein paar Tage her ist).
ausgabetext = "Der Preis für 2 Socken beträgt 5 DM und 5 Paar kosten 10 DM"
print(ausgabetext)
ausgabetext = ausgabetext.replace("DM", "Euro")
print("Nach dem Austauschen über replace():")
print(ausgabetext)
Als Ergebnis erhalten wir:
Der Preis für 2 Socken beträgt 5 DM und 5 Paar kosten 10 DM
Nach dem Austauschen über replace():
Der Preis für 2 Socken beträgt 5 Euro und 5 Paar kosten 10 Euro
Parameter von replace('x', 'y', [Anzahl])
Der dritte Parameter für die Anzahl ist Optional. Hier können wir festlegen, wie viele Vorkommen des alten Wertes ersetzt werden soll. Wird dieser Parameter nicht angegeben, werden alle Vorkommen ersetzt.
Beispiel: es sollen nur die erste 3 Vorkommen ersetzt werden:
ausgabetext = "Der Preis für 2 Socken beträgt 2 DM und 2 Paar kosten 3.50 DM"
ausgabetext = ausgabetext.replace("DM", "Euro")
ausgabetext = ausgabetext.replace("2", "zwei", 2)
print("Nach dem Austauschen über replace():")
print(ausgabetext)
Als Ergebnis erhalten wir:
Der Preis für zwei Socken beträgt zwei Euro und 2 Paar kosten 3.50 Euro
Mehrere Ersetzungen durchführen
Bei der Methode replace()
können wir nur eine Ersetzung mitgeben. Was aber, wenn mehrere Ersetzungen gewünscht sind. In unserem Beispiel sollen die Zahl 1,2 und 3 ausgeschrieben werden. Es soll also jede „1“ durch „eins“ und jede „2“ durch „zwei“ und jede „3“ durch „drei“ ersetzt werden. Welche Möglichkeiten haben wir dafür?
ausgabetext = "1 1 2 2 3 3 4 4"
ausgabetext = ausgabetext.replace("1", "eins")
ausgabetext = ausgabetext.replace("2", "zwei")
ausgabetext = ausgabetext.replace("3", "drei")
print("Nach dem Austauschen über replace():")
print(ausgabetext)
Als Ergebnis erhalten wir die gewünschten Ersetzungen:
eins eins zwei zwei drei drei 4 4
zweite Variante für mehrfache Ersetzungen
Die zweite Möglichkeit ist, einfach unsere Aufrufe hintereinander durchzuführen:
ausgabetext = "1 1 2 2 3 3 4 4"
ausgabetext = ausgabetext.replace("1","eins").replace("2","zwei").replace("3","drei")
print("Nach dem Austauschen über replace():")
print(ausgabetext)
Als Ergebnis erhalten wir wieder die gewünschten Ersetzungen:
eins eins zwei zwei drei drei 4 4