How do I remove the last character from a string?
"abcdefghij" → "abcdefghi" 35 Answers
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) 5What 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' 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 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 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'