Mudando um caractere em uma corda em Python

Qual é a maneira mais fácil em Python para substituir um personagem de uma corda?

Por exemplo:

text = "abcdefg";
text[1] = "Z";
           ^
Solução

Don't modifique as cordas.

Trabalhe com eles como listas; transforme-os em cordas apenas quando necessário.

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

As cordas Python são imutáveis (ou seja, podem't ser modificadas). Existem muitas razões para isto. Use listas até que você não tenha escolha, só então as transforme em cordas.

Comentários (9)
new = text[:1] + 'Z' + text[2:]
Comentários (1)

As cordas Python são imutáveis, você as muda fazendo uma cópia.
A maneira mais fácil de fazer o que você quer é provavelmente.

text = "Z" + text[1:]

O texto[1:] retorna a string no texto da posição 1 até o final, as posições contam de 0 so '1' é o segundo caractere.

editar: Você pode usar a mesma técnica de corte de corda para qualquer parte da corda

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

Ou se a carta só aparece uma vez que você pode usar a técnica de busca e substituição sugerida abaixo de

Comentários (2)