如何从字符串中删除最后一个字符?
"abcdefghij" → "abcdefghi"
my_str[:-1]
似乎有点跳跃。 由于链接的站点现在就出现了(请参阅 lynx
命令),因此很难找到。 $ lynx -dump https://web.archive.org/web/20200826203245/https://stackoverflow.com/questions/663171/how-do-i-get-a-substring-of-a-string-in-python | grep -n "\[[:][-]1\]"
\n 540:
print(a[:-1])
\n 542:
In the above code, [:-1] declares to print from the starting till the
\n 548: ` Note: Here a [:-1] is also the same as a [0:-1] and a [0:len(a)-1]
[:-2]
删除字符串的最后两个字符。我相信任何程序员都应该不难推断出 [:-1]
可以用于仅删除最后一个字符。
简单的:
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 中 string slicing 的扩展:
假设所有字符串的长度为 10,最后一个要删除的字符:
>>> st[:9]
'abcdefghi'
要删除最后 N
个字符:
>>> N = 3
>>> st[:-N]
'abcdefg'
最简单的解决方案是使用 string slicing。
蟒蛇 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
所以有一个叫做 rstrip() 的函数来处理这样的事情。您输入要删除的值,在本例中是最后一个元素,因此 string[-1] :
string = "AbCdEf"
newString = string.rstrip(string[-1])
print(newString)
如果你运行他的代码,你应该看到'f'值被删除。
OUTPUT: AbCdE
使用 slicing,可以指定 start
和 stop
索引来提取字符串 s
的一部分。格式为 s[start:stop]
。但是,默认情况下为 start = 0
。因此,我们只需要指定 stop
。
使用 stop = 3
:
>>> s = "abcd"
>>> s[:3]
'abc'
使用 stop = -1
从末尾删除 1
个字符(BEST METHOD):
>>> s = "abcd"
>>> s[:-1]
'abc'
使用 stop = len(s) - 1
:
>>> s = "abcd"
>>> s[:len(s) - 1]
'abc'
不定期副业成功案例分享
st[-1]
只是st
的最后一个字符st
为空,该切片仍然有效。好吧,它仍然会返回一个空字符串,但您不会收到错误消息。[i[:-1] for i in ['blue','red','green']]
list.pop()
方法是处理列表时要走的路,因为它删除了O(1)
中的最后一项,而[:-1]
切片创建了一个副本在O(n-1)
时间加上O(n-1)
空间中没有最后一个元素的列表。字符串是不可变的 - 所以没有什么可添加的。