Remova o primeiro caractere de uma sequência

166

Gostaria de remover o primeiro caractere de uma string.

Por exemplo, minha string começa com a :e eu quero removê-la apenas. Existem várias ocorrências :na cadeia que não devem ser removidas.

Estou escrevendo meu código em Python.

Hossein
fonte

Respostas:

298

python 2.x

s = ":dfa:sif:e"
print s[1:]

python 3.x

s = ":dfa:sif:e"
print(s[1:])

ambas as impressões

dfa:sif:e
Sven Marnach
fonte
13
Se esta é a resposta aceita, a pergunta deveria ter sido "como removo o primeiro caractere de uma string".
Spaceghost
1
@ Spaceghost: O OP afirma "Especificamente, quero remover o primeiro caractere".
Sven Marnach 9/02
3
Você está certo, eu estava apenas respondendo à diferença entre o título e o corpo da pergunta. Em retrospectiva, deveria ter passado o tempo tomando café. :-)
Spaceghost
35

Seu problema parece incerto. Você diz que deseja remover "um personagem de uma determinada posição" e depois diz que deseja remover um personagem em particular.

Se você apenas precisar remover o primeiro caractere, faria:

s = ":dfa:sif:e"
fixed = s[1:]

Se você deseja remover um personagem em uma posição específica, faça:

s = ":dfa:sif:e"
fixed = s[0:pos]+s[pos+1:]

Se você precisar remover um caractere específico, diga ':', na primeira vez que ele for encontrado em uma string, você faria:

s = ":dfa:sif:e"
fixed = ''.join(s.split(':', 1))
Spaceghost
fonte
6
O último exemplo pode ser feito com mais facilidade usando s.replace(":", "", 1)- #
Sven Marnach
25

Dependendo da estrutura da sequência, você pode usar lstrip:

str = str.lstrip(':')

Mas isso removeria todos os dois pontos no início, ou seja, se você tiver ::foo, o resultado seria foo. Mas essa função é útil se você também possui seqüências de caracteres que não começam com dois pontos e não deseja remover o primeiro caractere.

Felix Kling
fonte
2

excluindo um caractere:

def del_char(string, indexes):

    'deletes all the indexes from the string and returns the new one'

    return ''.join((char for idx, char in enumerate(string) if idx not in indexes))

exclui todos os caracteres que estão nos índices; você pode usá-lo no seu caso comdel_char(your_string, [0])

Formiga
fonte