Come cancellare un carattere da una stringa usando Python

C'è una stringa, per esempio. EXAMPLE.

Come posso rimuovere il carattere centrale, cioè M da essa? Non ho bisogno del codice. Voglio sapere:

  • Le stringhe in Python terminano con qualche carattere speciale?
  • Qual è un modo migliore: spostare tutto da destra a sinistra partendo dal carattere centrale o creare una nuova stringa e non copiare il carattere centrale?
Soluzione

In Python, le stringhe sono immutabili, quindi dovete creare una nuova stringa. Avete alcune opzioni su come creare la nuova stringa. Se volete rimuovere la 'M' ovunque essa appaia:

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

Se vuoi rimuovere il carattere centrale:

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

Hai chiesto se le stringhe finiscono con un carattere speciale. No, stai pensando come un programmatore C. In Python, le stringhe sono memorizzate con la loro lunghezza, quindi qualsiasi valore di byte, incluso \0, può apparire in una stringa.

Commentari (3)

Questo è probabilmente il modo migliore:

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

Non preoccupatevi di spostare i caratteri e così via. La maggior parte del codice Python si svolge su un livello di astrazione molto più alto.

Commentari (3)

Per sostituire una posizione specifica:

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

Per sostituire un carattere specifico:

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