Eén karakter in een string veranderen in Python

Wat is de gemakkelijkste manier in Python om een karakter in een string te vervangen?

Bijvoorbeeld:

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

Pas strings niet aan.

Werk ermee als lijsten; verander ze alleen in tekenreeksen als dat nodig is.

>>> 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'

Python strings zijn onveranderlijk (d.w.z. ze kunnen'niet worden gewijzigd). Daar zijn veel redenen voor. Gebruik lijsten totdat je geen keus hebt, maak er dan pas strings van.

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

Python strings zijn onveranderlijk, je verandert ze door een kopie te maken.
De makkelijkste manier om te doen wat je wilt is waarschijnlijk.

text = "Z" + text[1:]

De text[1:] geeft de string in tekst terug vanaf positie 1 tot het einde, posities tellen vanaf 0 dus '1' is het tweede karakter.

bewerken: Je kunt dezelfde string slicing techniek gebruiken voor elk deel van de string

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

Of als de letter maar één keer voorkomt, kun je de zoek en vervang techniek gebruiken die hieronder

Commentaren (2)