How do I remove the last character from a string?
"abcdefghij" → "abcdefghi"
Mateen Ulhaq
22.2k16 gold badges86 silver badges127 bronze badges
asked Mar 18, 2013 at 13:33
3
Simple:
my_str = "abcdefghij"
my_str = my_str[:-1]
Try the following code snippet to better understand how it works by casting the string as a list:
str1 = "abcdefghij"
list1 = list[str1]
print[list1]
list2 = list1[:-1]
print[list2]
In case, you want to accept the string from the user:
str1 = input["Enter :"]
list1 = list[str1]
print[list1]
list2 = list1[:-1]
print[list2]
To make it take away the last word from a sentence [with words separated by whitespace like space]:
str1 = input["Enter :"]
list1 = str1.split[]
print[list1]
list2 = list1[:-1]
print[list2]
Hari
1,1283 gold badges14 silver badges23 bronze badges
answered Mar 18, 2013 at 13:34
CyrilleCyrille
13.4k2 gold badges17 silver badges38 bronze badges
5
What you are trying to do is an extension of string slicing in Python:
Say all strings are of length 10, last char to be removed:
>>> st[:9]
'abcdefghi'
To remove last N
characters:
>>> N = 3
>>> st[:-N]
'abcdefg'
answered Aug 30, 2019 at 9:56
Anshul GoyalAnshul Goyal
69.2k36 gold badges142 silver badges175 bronze badges
The simplest solution for you is using string slicing.
Python 2/3:
source[0: -1] # gets all string but not last char
Python 2:
source = 'ABC'
result = "{}{}".format[{source[0: -1], 'D']
print[result] # ABD
Python 3:
source = 'ABC'
result = f"{source[0: -1]}D"
print[result] # ABD
answered Jun 8, 2021 at 13:38
NicoNico
8489 silver badges20 bronze badges
So there is a function called rstrip[] for stuff like this. You enter the value you want to delete, in this case last element so string[-1] :
string = "AbCdEf"
newString = string.rstrip[string[-1]]
print[newString]
If you runt his code you shouul see the 'f' value is deleted.
OUTPUT: AbCdE
answered May 3 at 18:57
Using slicing, one can specify the start
and stop
indexes to extract part of a string s
. The format is s[start:stop]
. However, start = 0
by default. So, we only need to specify stop
.
Using stop = 3
:
>>> s = "abcd"
>>> s[:3]
'abc'
Using stop = -1
to remove 1
character from the end [BEST METHOD]:
>>> s = "abcd"
>>> s[:-1]
'abc'
Using stop = len[s] - 1
:
>>> s = "abcd"
>>> s[:len[s] - 1]
'abc'
answered Apr 25 at 0:14
Mateen UlhaqMateen Ulhaq
22.2k16 gold badges86 silver badges127 bronze badges