692

假设我的字符串长度为 10 个字符。

如何删除最后一个字符?

如果我的字符串是"abcdefghij"(我不想替换'j'字符,因为我的字符串可能包含多个'j'字符)我只希望最后一个字符消失。无论它是什么或发生多少次,我都需要从字符串中删除最后一个字符。

4

4 回答 4

1130

简单的:

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)
于 2013-03-18T13:34:44.277 回答
50

您正在尝试做的是Python中字符串切片的扩展:

假设所有字符串的长度为 10,最后一个要删除的字符:

>>> st[:9]
'abcdefghi'

要删除最后一个N字符:

>>> N = 3
>>> st[:-N]
'abcdefg'
于 2019-08-30T09:56:18.387 回答
9

最简单的解决方案是使用字符串切片

蟒蛇 2/3:

source[0: -1]  # gets all string but not last char

蟒蛇2:

source = 'ABC'    
result = "{}{}".format({source[0: -1], 'D')
print(result)  # ABD

蟒蛇 3:

source = 'ABC'    
result = f"{source[0: -1]}D"
print(result)  # ABD
于 2021-06-08T13:38:01.563 回答
-5

这实际上应该有效:

string = string[0:len(string) - 2]
于 2021-06-07T04:05:14.323 回答