Como excluir um caractere de uma string usando Python

Há um fio, por exemplo. "EXEMPLO".

Como posso remover o personagem do meio, ou seja, M dele? Eu não'não preciso do código. Eu quero saber:

  • As cordas em Python terminam em algum carácter especial?
  • Qual é uma maneira melhor - mudar tudo da direita para a esquerda começando pelo caractere do meio OU criação de uma nova string e não copiar o caractere do meio?
Solução

Em Python, as cordas são imutáveis, então você tem que criar uma nova corda. Você tem algumas opções de como criar a nova cadeia de caracteres. Se você quiser remover o 'M' onde quer que ele apareça:

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

Se você quiser remover o personagem central:

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

Você perguntou se as cordas terminam com um carácter especial. Não, você está pensando como um programador em C. Em Python, as cordas são armazenadas com seu comprimento, então qualquer valor de byte, incluindo `\0', pode aparecer em uma string.

Comentários (3)

Esta é provavelmente a melhor maneira:

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

Don'não se preocupe com a mudança de personagens e tal. A maioria do código Python ocorre em um nível muito mais alto de abstração.

Comentários (3)

Para substituir uma posição específica:

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

Para substituir um carácter específico:

s = s.replace('M','')
Comentários (3)