Supprimer le dernier caractère de la chaîne

510

Disons que ma chaîne comporte 10 caractères.

Comment supprimer le dernier caractère?

Si ma chaîne est "abcdefghij"(je ne veux pas remplacer le 'j'caractère, car ma chaîne peut contenir plusieurs 'j'caractères), je veux seulement que le dernier caractère disparaisse. Peu importe ce que c'est ou combien de fois cela se produit, je dois supprimer le dernier caractère de ma chaîne.

user1675111
la source

Réponses:

835

Facile:

st =  "abcdefghij"
st = st[:-1]

Il existe également une autre méthode qui montre comment procéder avec les étapes:

list1 = "abcdefghij"
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

C'est aussi un moyen avec une entrée utilisateur:

list1 = input ("Enter :")
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

Pour lui faire retirer le dernier mot d'une liste:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)
Cyrille
la source
3
Oui, st[-1]n'est que le dernier personnage dest
Cyrille
5
En fait, cette tranche fonctionnera toujours même si elle stest vide. Eh bien, il retournera toujours une chaîne vide, mais vous n'obtiendrez pas d'erreur.
kindall
1
Que faire si vous avez une liste de mots et que vous souhaitez supprimer le dernier caractère de chaque mot? [bleu, rouge, vert] => [blu, re, gree]?
Jellyse
5
[i[:-1] for i in ['blue','red','green']]
Cyrille
3
En regardant les exemples, il convient de mentionner que les listes sont modifiables et que la list.pop()méthode est la voie à suivre pour traiter les listes, car elle supprime le dernier élément en place O(1), tandis que le [:-1]découpage crée une copie d'une liste sans le dernier élément dans le O(n-1)temps plus d' O(n-1)espace. Les chaînes sont immuables - donc rien à ajouter.
Dmitry
19

Ce que vous essayez de faire est une extension du découpage de chaîne en Python:

Supposons que toutes les chaînes aient une longueur de 10, le dernier caractère à supprimer:

>>> st[:9]
'abcdefghi'

Pour supprimer les derniers Ncaractères:

>>> N = 3
>>> st[:-N]
'abcdefg'
mu 無
la source