如何从字符串中删除最后一个字符?
"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)
st[-1]
只是 st
的最后一个字符。 - Cyrillest
是空的,那个切片仍然可以使用。它会返回一个空字符串,但你不会收到错误提示。 - kindalllist.pop()
方法是处理列表时应该采用的方式,因为它可以在原地以 O(1)
时间删除最后一个元素,而 [:-1]
切片则会在 O(n-1)
的时间内创建一个不包括最后一个元素的列表副本,需要额外的 O(n-1)
空间。
字符串是不可变的 - 没有什么可以补充的。 - Dmitry>>> st[:9]
'abcdefghi'
要删除最后的N
个字符:
>>> N = 3
>>> st[:-N]
'abcdefg'
对您来说最简单的解决方案是使用字符串切片。
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
使用切片,可以通过指定start
和stop
索引来提取字符串s
的一部分。格式为s[start:stop]
。然而,默认情况下start=0
,因此我们只需要指定stop
即可。
使用stop=3
:
>>> s = "abcd"
>>> s[:3]
'abc'
使用 stop = -1
从末尾删除一个字符(最佳方法):
>>> s = "abcd"
>>> s[:-1]
'abc'
stop = len(s) - 1
:>>> s = "abcd"
>>> s[:len(s) - 1]
'abc'
start:stop
) 的形式,这也解决了问题“如何从字符串中删除前 N 个字符?” 对于新手来说,我想 [:-1]
看起来像是未经解释的魔术。最后,这个答案也给出了 :-1
如何对应于 :len(s) - 1
的一些指示。 - Mateen Ulhaq所以有一个名为rstrip()的函数可以处理这种情况。你输入要删除的值,比如在这个例子中是最后一个元素,所以是string[-1]:
string = "AbCdEf"
newString = string.rstrip(string[-1])
print(newString)
OUTPUT: AbCdE
input_str = "abcdefghij"
output_str = ''.join(input_str.rsplit(input_str[-1], 1))
print(output_str) # Output: "abcdefghi"
在这个方法中,input_str.rsplit(input_str[-1], 1)
将字符串在最后一个字符的最后一次出现处分割,得到一个子字符串列表。然后,''.join()
将这些子字符串连接成一个不包含最后一个字符的单个字符串。结果字符串存储在output_str
中。
如果您想仅删除特定字符的最后一个出现而不是通常情况下删除最后一个字符,则此方法可能很有用。
my_str[:-1]
似乎有点困难。就目前而言,(请参见lynx
命令),很难找到链接的网站。$ lynx -dump https://web.archive.org/web/20200826203245/https://dev59.com/_3RB5IYBdhLWcg3wUFrB | grep -n "\[[:][-]1\]"
\n540:
print(a[:-1])
\n542:
在上面的代码中,[:-1] 表示从开头打印到
\n 548:注意:这里的 [:-1] 与 [0:-1] 和 [0:len(a)-1] 是相同的。
- bballdave025[:-2]
来移除字符串的最后两个字符。我相信对于任何程序员来说,推断出可以使用[:-1]
来仅删除最后一个字符应该不会太难。 - mkrieger1