Cambiare un carattere in una stringa in Python

Qual è il modo più semplice in Python per sostituire un carattere in una stringa?

Per esempio:

text = "abcdefg";
text[1] = "Z";
           ^
Soluzione

Non modificare le stringhe.

Lavorate con loro come liste; trasformatele in stringhe solo quando è necessario.

>>> s = list("Hello zorld")
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'z', 'o', 'r', 'l', 'd']
>>> s[6] = 'W'
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
>>> "".join(s)
'Hello World'

Le stringhe Python sono immutabili (cioè non possono essere modificate). Ci sono molte ragioni per questo. Usate le liste finché non avete scelta, solo allora trasformatele in stringhe.

Commentari (9)
new = text[:1] + 'Z' + text[2:]
Commentari (1)

Le stringhe Python sono immutabili, le cambiate facendo una copia.
Il modo più semplice per fare ciò che vuoi è probabilmente.

text = "Z" + text[1:]

Il testo[1:] restituisce la stringa nel testo dalla posizione 1 alla fine, le posizioni contano da 0 quindi '1' è il secondo carattere.

modifica: Puoi usare la stessa tecnica di affettare le stringhe per qualsiasi parte della stringa

text = text[:1] + "Z" + text[2:]

Oppure, se la lettera appare solo una volta, puoi usare la tecnica di ricerca e sostituzione suggerita qui sotto

Commentari (2)