从字符串中删除最后一个字符


507

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

如何删除最后一个字符?

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


Answers:


832

简单:

st =  "abcdefghij"
st = st[:-1]

还有另一种方法可以显示如何通过步骤完成:

list1 = "abcdefghij"
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

这也是用户输入的一种方式:

list1 = input ("Enter :")
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

为了使它带走列表中的最后一个单词:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)

3
是的,st[-1]仅是st
Cyrille

5
实际上,即使st为空,该片仍将起作用。好了,它仍然会返回一个空字符串,但是不会出现错误。
kindall 2013年

1
如果您有单词列表并且想要删除每个单词的最后一个字符怎么办?[蓝色,红色,绿色] => [蓝色,红色,绿色]?
Jellyse

5
[i[:-1] for i in ['blue','red','green']]
Cyrille

3
综观例子,值得一提的是列表是可变的,并且 list.pop()方法是用列表打交道时的路要走,因为它消除到位的最后一个项目O(1),而[:-1]切片创建一个列表的副本,而不在最后一个元素O(n-1)时加上O(n-1)空间。字符串是不可变的-因此无需添加任何内容。
德米特里(Dmitry)

19

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

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

>>> st[:9]
'abcdefghi'

删除最后一个N字符:

>>> N = 3
>>> st[:-N]
'abcdefg'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.