Rimozione dei primi x caratteri dalla stringa?


116

Come si possono rimuovere i primi x caratteri da una stringa? Ad esempio, se uno avesse una stringa lipsum, come rimuoverebbero i primi 3 caratteri e otterrebbero un risultato di sum?


5
esempio migliore se il numero di caratteri rimossi non fosse uguale al numero di caratteri da rimanere. ad esempio"lipsumm"[3:] == "summ"
Scott Pelak

Risposte:


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

Vedere la documentazione ufficiale sulle stringhe per ulteriori informazioni e questa risposta SO per un breve riepilogo della notazione.


16

Un altro modo (a seconda delle tue effettive esigenze): se vuoi far apparire i primi n caratteri e salvare sia i caratteri estratti che la stringa modificata:

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

3
Immagino sia metaforicamente "scoppiato", ma in realtà sono solo 2 fette diverse, nessun vero schiocco
jamylak

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

11
Nota che questo è più lungo nel codice e richiederà anche più tempo poiché devi cercare la sottostringa prima di sostituirla. Inoltre: >>> x = 'liplip' >>> x.replace(x[:3], '') ''. Sicuramente potresti risolvere questo problema avendo il terzo parametro (count) = 1 ma ci vorrebbe ancora più tempo.
jamylak

nah è correlato alla tua risposta quindi appartiene qui. Puoi aggiungere count = 1 al tuo in modo che funzioni ancora btw
jamylak

4

Usa del.

Esempio:

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

1
Questo non funziona come potresti pensare text = 'liplip' >>> text.lstrip(text[:3]) ''perché per uno L'argomento chars non è un prefisso; piuttosto, tutte le combinazioni dei suoi valori vengonostr.lstrip([chars])
rimosse

@jamylak Modificato il mio
U10-Forward

1
Nessuna delle soluzioni funziona ad es. per 'liplip'. Nella secondaTypeError: 'str' object does not support item deletion
jamylak

@jamylak Edited again
U10-Forward

@jamylak funziona, ora, se è così hai bisogno di downvote?
U10-Attaccante

2

Esempio per mostrare le ultime 3 cifre del numero di conto.

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

o/p: '890'

Questo ha lo stesso problema della risposta di tkbx
jamylak

per esempio. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
jamylak

Inoltre questo non risponde nemmeno alla domanda, stai sostituendo i caratteri con xs invece di eliminarli
jamylak
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.