580 Stimmen

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

Es gibt z. B. eine Zeichenkette. EXAMPLE .

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

  • Endet eine Zeichenkette in Python mit einem Sonderzeichen?
  • Was ist besser - alles von rechts nach links zu verschieben, beginnend mit dem mittleren Zeichen ODER eine neue Zeichenfolge zu erstellen und das mittlere Zeichen nicht zu kopieren?

0 Stimmen

2voto

PaulM Punkte 29

So habe ich das "M" herausgeschnitten:

s = 'EXAMPLE'
s1 = s[:s.index('M')] + s[s.index('M')+1:]

4 Stimmen

Dies würde nur bei dieser speziellen Zeichenfolge funktionieren und ist keine allgemeine Lösung.

2voto

BlackBeard Punkte 9394

Zum Löschen einer char oder eine sub-string einmal (nur das erste Vorkommen):

main_string = main_string.replace(sub_str, replace_with, 1)

ANMERKUNG: Hier 1 kann ersetzt werden durch eine beliebige int für die Anzahl der Vorkommen, die Sie ersetzen möchten.

2voto

hubert Punkte 2709

Sie können einfach das Listenverständnis verwenden.

Angenommen, Sie haben die Zeichenfolge: my name is und Sie möchten das Zeichen m . verwenden Sie den folgenden Code:

"".join([x for x in "my name is" if x is not 'm'])

1voto

d1jhoni1b Punkte 6613

Wenn Sie Zeichen in einer Zeichenkette löschen/ignorieren wollen und beispielsweise diese Zeichenkette haben,

"[11:L:0]"

aus einer Web-API-Antwort oder etwas Ähnlichem, wie einer CSV-Datei, sagen wir, Sie verwenden Anfragen

import requests
udid = 123456
url = 'http://webservices.yourserver.com/action/id-' + udid
s = requests.Session()
s.verify = False
resp = s.get(url, stream=True)
content = resp.content

Schleife und entfernen Sie unerwünschte Zeichen:

for line in resp.iter_lines():
  line = line.replace("[", "")
  line = line.replace("]", "")
  line = line.replace('"', "")

Optionale Aufteilung, und Sie können die Werte einzeln lesen:

listofvalues = line.split(':')

Jetzt ist der Zugriff auf jeden Wert einfacher:

print listofvalues[0]
print listofvalues[1]
print listofvalues[2]

Damit wird gedruckt

11

L

0

1voto

Talha Tayyab Punkte 1803

Zwei neue Methoden zur Entfernung von Zeichenketten werden eingeführt in Python 3.9+

#str.removeprefix("prefix_to_be_removed")
#str.removesuffix("suffix_to_be_removed")

s='EXAMPLE'

In diesem Fall ist die Position von "M" 3

s = s[:3] + s[3:].removeprefix('M')

OR

s = s[:4].removesuffix('M') + s[4:]

#output'EXAPLE'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X