Removendo os primeiros x caracteres da string?


116

Como remover os primeiros x caracteres de uma string? Por exemplo, se alguém tivesse uma string lipsum, como eles removeriam os primeiros 3 caracteres e obteriam o resultado de sum?


5
melhor exemplo se o número de caracteres removidos não for igual ao número de caracteres a permanecer. por exemplo"lipsumm"[3:] == "summ"
Scott Pelak

Respostas:


213
>>> text = 'lipsum'
>>> text[3:]
'sum'

Consulte a documentação oficial sobre strings para obter mais informações e esta resposta do SO para um resumo conciso da notação.


16

Outra maneira (dependendo de suas necessidades reais): se você deseja exibir os primeiros n caracteres e salvar os caracteres exibidos e a string modificada:

s = 'lipsum'
n = 3
a, s = s[:n], s[n:]
print(a)
# lip
print(s)
# sum

3
Eu acho que metaforicamente "estourou", mas na verdade são apenas 2 fatias diferentes, sem estourar de verdade
Jamylak de

9
>>> x = 'lipsum'
>>> x.replace(x[:3], '')
'sum'

11
Observe que isso é mais longo no código e também levará mais tempo, já que você precisa pesquisar a substring antes de substituí-la. Também: >>> x = 'liplip' >>> x.replace(x[:3], '') ''. Claro que você poderia corrigir isso tendo o terceiro parâmetro (contagem) = 1, mas ainda assim demoraria mais.
Jamylak

nah está relacionado à sua resposta, portanto, pertence aqui. Você pode adicionar count = 1 ao seu para que ele ainda funcione btw
jamylak

4

Use del.

Exemplo:

>>> text = 'lipsum'
>>> l = list(text)
>>> del l[3:]
>>> ''.join(l)
'sum'

1
Isso não funciona como você pensa, text = 'liplip' >>> text.lstrip(text[:3]) ''porque para um O argumento chars não é um prefixo; em vez disso, todas as combinações de seus valores são removidas:str.lstrip([chars])
jamylak

@jamylak Editou o meu
U10-Forward

1
Nenhuma das soluções funciona, por exemplo. para 'liplip'. No segundoTypeError: 'str' object does not support item deletion
Jamylak

@jamylak editado novamente
U10-Forward

@jamylak funciona, agora, se sim, você precisa votar contra?
U10-Forward

2

Exemplo para mostrar os últimos 3 dígitos do número da conta.

x = '1234567890'   
x.replace(x[:7], '')

o/p: '890'

Isso tem o mesmo problema que a resposta de tkbx
jamylak de

por exemplo. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
Jamylak de

Além disso, isso nem mesmo responde à pergunta, você está substituindo os caracteres por xs em vez de excluí-los
jamylak
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.