如何从字符串中删除最后一个字符?
"abcdefghij" → "abcdefghi"
简单:
my_str = "abcdefghij" my_str = my_str[:-1]
尝试以下代码片段,通过将字符串转换为列表来更好地理解它的工作原理:
str1 = "abcdefghij" list1 = list(str1) print(list1) list2 = list1[:-1] print(list2)
如果您想接受来自用户的字符串:
str1 = input("Enter :") list1 = list(str1) print(list1) list2 = list1[:-1] print(list2)
为了使它从句子中去掉最后一个词(用空格等空格分隔单词):
str1 = input("Enter :") list1 = str1.split() print(list1) list2 = list1[:-1] print(list2)
您尝试做的是Python中串切片的扩展:
假设所有字符串的长度为10,最后一个要删除的字符:
>>> st[:9] 'abcdefghi'
删除最后一个N字符:
N
>>> N = 3 >>> st[:-N] 'abcdefg'
最简单的解决方案是使用串切片。
Python 2/3:
source[0: -1] # gets all string but not last char
python2:
source = 'ABC' result = "{}{}".format({source[0: -1], 'D') print(result) # ABD
python3:
source = 'ABC' result = f"{source[0: -1]}D" print(result) # ABD
使用切片,可以指定start和stop索引来提取字符串s的一部分。格式是s[start:stop]。但是,默认情况下start = 0。所以,我们只需要指定stop。
start
stop
s
s[start:stop]
start = 0
使用stop = 3:
stop = 3
>>> s = "abcd" >>> s[:3] 'abc'
使用stop = -1从末尾(最佳方法)删除1字符:
stop = -1
1
>>> s = "abcd" >>> s[:-1] 'abc'
使用stop = len(s) - 1:
stop = len(s) - 1
>>> s = "abcd" >>> s[:len(s) - 1] 'abc'
所以有一个名为rstrie()的函数用于这样的东西。您输入要删除的值,在这种情况下,最后一个元素是string[-1]:
string = "AbCdEf" newString = string.rstrip(string[-1]) print(newString)
如果你运行他的代码,你应该看到'f'值被删除。
OUTPUT: AbCdE