Supprimer les x premiers caractères de la chaîne?

116

Comment peut-on supprimer les x premiers caractères d'une chaîne? Par exemple, si l'on avait une chaîne lipsum, comment supprimeraient-ils les 3 premiers caractères et obtiendraient-ils un résultat sum?

tkbx
la source
5
meilleur exemple si le nombre de caractères supprimés n'était pas égal au nombre de caractères à rester. par exemple"lipsumm"[3:] == "summ"
Scott Pelak

Réponses:

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

Voir la documentation officielle sur les chaînes pour plus d'informations et cette réponse SO pour un résumé concis de la notation.

Jamylak
la source
16

Une autre façon (en fonction de vos besoins réels): Si vous souhaitez afficher les n premiers caractères et enregistrer à la fois les caractères sautés et la chaîne modifiée:

s = 'lipsum'
n = 3
a, s = s[:n], s[n:]
print(a)
# lip
print(s)
# sum
Ken A
la source
3
Je suppose que c'est métaphoriquement "sauté", mais en fait il ne s'agit que de 2 tranches différentes, pas de véritable éclatement
jamylak
9
>>> x = 'lipsum'
>>> x.replace(x[:3], '')
'sum'
tkbx
la source
11
Notez que cela est plus long dans le code et prendra également plus de temps puisque vous devez rechercher la sous-chaîne avant de la remplacer. En outre: >>> x = 'liplip' >>> x.replace(x[:3], '') ''. Bien sûr, vous pouvez résoudre ce problème en ayant le troisième paramètre (count) = 1, mais cela prendrait encore plus de temps.
jamylak
nah c'est lié à votre réponse donc il appartient ici. Vous pouvez ajouter count = 1 au vôtre pour qu'il fonctionne toujours btw
jamylak
4

Utilisez del.

Exemple:

>>> text = 'lipsum'
>>> l = list(text)
>>> del l[3:]
>>> ''.join(l)
'sum'
U10-avant
la source
1
Cela ne fonctionne pas comme vous le pensez text = 'liplip' >>> text.lstrip(text[:3]) ''car pour l'un, l' argument chars n'est pas un préfixe; au contraire, toutes les combinaisons de ses valeurs sont supprimées:str.lstrip([chars])
jamylak
@jamylak Edited mine
U10-Forward
1
Aucune des solutions ne fonctionne, par exemple. pour 'liplip'. Dans le secondTypeError: 'str' object does not support item deletion
jamylak
@jamylak modifié à nouveau
U10-Forward
@jamylak ça marche, maintenant, si oui, avez-vous besoin de voter contre?
U10-Forward le
2

Exemple pour afficher les 3 derniers chiffres du numéro de compte.

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

o/p: '890'
Pratik Jaswant
la source
Cela a le même problème que la réponse de tkbx
jamylak
par exemple. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
jamylak
De plus, cela ne répond même pas à la question, vous remplacez les caractères par des xs au lieu de les supprimer
jamylak