Wie man mit Python ein Zeichen aus einer Zeichenkette löscht

Es gibt eine Zeichenkette, zum Beispiel. BEISPIEL".

Wie kann ich das mittlere Zeichen, d.h. "M", daraus entfernen? Ich brauche den Code nicht. Ich möchte es nur wissen:

  • Enden Zeichenketten in Python mit irgendeinem Sonderzeichen?
  • Was ist der bessere Weg - alles von rechts nach links zu verschieben, beginnend mit dem mittleren Zeichen ODER eine neue Zeichenkette zu erstellen und das mittlere Zeichen nicht zu kopieren?
Lösung

In Python sind Zeichenketten unveränderlich, daher müssen Sie eine neue Zeichenkette erstellen. Sie haben mehrere Möglichkeiten, wie Sie die neue Zeichenfolge erstellen können. Wenn Sie das 'M' entfernen möchten, wo auch immer es erscheint:

newstr = oldstr.replace("M", "")

Wenn Sie das zentrale Zeichen entfernen möchten:

midlen = len(oldstr)/2   # //2 in python 3
newstr = oldstr[:midlen] + oldstr[midlen+1:]

Sie haben gefragt, ob Zeichenketten mit einem Sonderzeichen enden. Nein, Sie denken wie ein C-Programmierer. In Python werden Zeichenketten mit ihrer Länge gespeichert, so dass jeder Byte-Wert, einschließlich \0, in einer Zeichenkette erscheinen kann.

Kommentare (3)

Dies ist wahrscheinlich der beste Weg:

original = "EXAMPLE"
removed = original.replace("M", "")

Machen Sie sich keine Gedanken über das Verschieben von Zeichen und dergleichen. Der meiste Python-Code findet auf einer viel höheren Abstraktionsebene statt.

Kommentare (3)

Um eine bestimmte Position zu ersetzen:

s = s[:pos] + s[(pos+1):]

Um ein bestimmtes Zeichen zu ersetzen:

s = s.replace('M','')
Kommentare (3)