Substituir caractere em uma string em Python

Manav Narula 10 outubro 2023
  1. Use as funções list() e join() para substituir um caractere em uma string
  2. Use a função bytearray() para substituir um caractere em uma string
  3. Use a função replace() para substituir caracteres em uma string
  4. Use o método de concatenação de string para substituir um caractere em uma string
Substituir caractere em uma string em Python

Uma string é uma coleção de caracteres. Em Python, as strings são imutáveis. Isso significa que é impossível modificar esses objetos e apenas ser reatribuídos ou uma cópia pode ser criada.

Devido a isso, não é simples substituir caracteres em uma string. Se estivermos lidando com um objeto mutável, podemos facilmente alterar seus elementos, como podemos em uma lista conforme mostrado abaixo.

l = ["a", "b", "c"]
l[1] = "d"
print(l)

Resultado:

['a', 'd', 'c']

Não fazemos o mesmo com uma string. Neste tutorial, aprenderemos como substituir um caractere em uma string.

Use as funções list() e join() para substituir um caractere em uma string

Neste método, convertemos a string em uma lista de caracteres usando a função list(). Mudamos o personagem necessário desta lista. Em seguida, combinamos a lista inteira em uma única string usando a função join().

O trecho de código a seguir implementa isso.

s = "Naze"
l = list(s)
l[2] = "m"
s = "".join(l)
print(s)

Resultado:

Name

É um método simples e eficiente, embora seja considerado um pouco lento.

Use a função bytearray() para substituir um caractere em uma string

um array de bytes é um objeto mutável em Python. É um array de bytes. Podemos converter a string em um array de bytes usando a função bytearray(), fazer as substituições necessárias e então convertê-la novamente em uma string usando a função str().

Por exemplo,

s = "Naze"
b = bytearray(s)
b[2] = "m"
s = str(b)
print(s)

Resultado:

Name

Observe que esse método falha no Python 3.x e superior, pois precisamos codificar a string nas versões recentes.

Use a função replace() para substituir caracteres em uma string

Python está muito bem equipado com muitas funções para trabalhar com strings. Podemos usar a função replace() para alterar os caracteres em uma string. Temos que especificar os caracteres antigos e novos na função.

O código a seguir demonstra o uso dessa função.

s = "Naze"
new_s = s.replace("z", "m")
print(new_s)

Resultado:

Name

Observe que este método substitui todas as ocorrências do personagem antigo pelo novo.

Use o método de concatenação de string para substituir um caractere em uma string

Se soubermos a posição do personagem que queremos mudar, esse método pode ser muito útil e rápido. Dividimos a string até essa parte, adicionamos o caractere e então o concatenamos com a parte restante da string que resta.

O trecho de código a seguir implementa isso.

s = "Naze"
new_s = s[:2] + "m" + s[3:]
print(new_s)

Resultado:

Name

Observe que este é o mais rápido de todos os métodos.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artigo relacionado - Python String