Há uma string, por exemplo. EXAMPLE
.
Como posso remover o personagem do meio, ou seja, M
dele? Eu não preciso do código. Eu quero saber:
- As strings no Python terminam com algum caractere especial?
- Qual é a maneira melhor - mudar tudo da direita para a esquerda, começando no caractere do meio OU criação de uma nova string e não copiando o caractere do meio?
Respostas:
No Python, as strings são imutáveis, então você precisa criar uma nova string. Você tem algumas opções de como criar a nova string. Se você deseja remover o 'M' onde quer que ele apareça:
Se você deseja remover o caractere central:
Você perguntou se as strings terminam com um caractere especial. Não, você está pensando como um programador em C. No Python, as strings são armazenadas com seu comprimento, portanto, qualquer valor de byte, inclusive
\0
, pode aparecer em uma string.fonte
from __future__ import division
no início do seu script fará versão 2.x python agir como versão 3.x""
não implica uma linha vazia. Se você colocá-lo em uma lista e associá-lo a novas linhas, ele criará uma linha vazia, mas há muitos outros lugares em que você pode usar uma string vazia que não fará isso.Esta é provavelmente a melhor maneira:
Não se preocupe em mudar de personagem e tal. A maioria dos códigos Python ocorre em um nível muito mais alto de abstração.
fonte
M
pode não ser único. Nesse caso, isso substituirá todos osM
s, certo?n
ocorrências, useoriginal.replace("M", "", n)
.Para substituir uma posição específica:
Para substituir um caractere específico:
fonte
l
. Então, para a primeira parte, a restrição para pos deve serl-1 > pos >= 0
.Strings são imutáveis. Mas você pode convertê-los em uma lista, que é mutável, e depois converter a lista novamente em uma sequência depois de alterá-la.
Você também pode criar uma nova string, como outros mostraram, pegando tudo, exceto o caractere desejado da string existente.
fonte
str.replace
método?Você não pode, porque as strings em Python são imutáveis .
Não. Eles são semelhantes às listas de caracteres; o comprimento da lista define o comprimento da cadeia e nenhum caractere atua como um terminador.
Você não pode modificar a sequência existente, portanto, você deve criar uma nova contendo tudo, exceto o caractere do meio.
fonte
Use o
translate()
método:fonte
None
remover parece não funcionar):translate( str.maketrans("<>", " ") )
str.maketrans( "", "", "<>")
estr.maketrans( {"<":None,">":None })
'EXAMPLE'.translate({ord("M"): None})
UserString.MutableString
Maneira mutável:
fonte
Como remover um caractere de uma string: Aqui está um exemplo em que há uma pilha de cartões representados como caracteres em uma sequência. Um deles é desenhado (módulo aleatório de importação para a função random.choice (), que seleciona um caractere aleatório na string). Uma nova sequência de caracteres, cardsLeft, é criada para conter as demais cartas fornecidas pela função de sequência replace (), onde o último parâmetro indica que apenas uma "carta" deve ser substituída pela sequência de caracteres vazia ...
fonte
Eu já vi isso em algum lugar aqui .
fonte
Aqui está o que eu fiz para cortar o "M":
fonte
Se você deseja excluir / ignorar caracteres em uma sequência e, por exemplo, você tem essa sequência,
"[11: L: 0]"
de uma resposta da API da Web ou algo assim, como um arquivo CSV, digamos que você esteja usando solicitações
loop e se livrar de caracteres indesejados:
Divisão opcional e você poderá ler os valores individualmente:
Agora, acessar cada valor é mais fácil:
Isso imprimirá
fonte
Para excluir uma
char
ou umasub-string
vez (apenas a primeira ocorrência):NOTA: Aqui
1
pode ser substituído por qualquerint
número de ocorrência que você deseja substituir.fonte
Você pode simplesmente usar a compreensão da lista.
Suponha que você tenha a string:
my name is
e deseja remover o caracterem
. use o seguinte código:fonte
fonte
Outra maneira é com uma função,
Abaixo está uma maneira de remover todas as vogais de uma string, apenas chamando a função
fonte
Strings são imutáveis em Python, portanto, ambas as opções significam a mesma coisa basicamente.
fonte