简体   繁体   中英

Remove final character from string

How do I remove the last character from a string?

"abcdefghij"  →  "abcdefghi"

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)

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'

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

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'

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
def RemoveLastOne(text): # RemoveLastOne function
    text = str(text) # convert type to str
    result = text[:(len(text)-1)] # remove last string
    return result #return result without last string

text = 'abcdefghij' #varible
result = RemoveLastOne(text) #input --> abcdefghij

print(result) #output --> abcdefghi

这实际上应该有效:

string = string[0:len(string) - 2]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM