从字符串中删除最终字符

如何从字符串中删除最后一个字符?

"abcdefghij"  →  "abcdefghi"
1326784 次浏览

简单:

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 = 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

使用切片,可以指定startstop索引来提取字符串s的一部分。格式是s[start:stop]。但是,默认情况下start = 0。所以,我们只需要指定stop


使用stop = 3

>>> s = "abcd"
>>> s[:3]
'abc'

使用stop = -1从末尾(最佳方法)删除1字符:

>>> s = "abcd"
>>> s[:-1]
'abc'

使用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