从 Python 中的字符串中删除最后一个单词
Remove the last word from a String in Python
从字符串中删除最后一个单词:
- 使用该
str.rsplit()
方法将字符串从右侧拆分一次空格。 - 访问第一个列表项。
- 第一个列表项存储最后一个单词之前的字符串部分。
主程序
my_str = 'one two three four five' # ✅ Remove last word from string (using str.rsplit()) new_str = my_str.rsplit(' ', 1)[0] print(new_str) # 👉️ 'one two three four' # -------------------------------- # ✅ Remove last word from string (using str.rindex()) new_str = my_str[:my_str.rindex(' ')] print(new_str) # 👉️ 'one two three four'
第一个示例使用str.rsplit()
方法从字符串中删除最后一个单词。
str.rsplit
方法使用提供的分隔符作为分隔符字符串返回字符串中的单词列表。
主程序
my_str = 'one two three four five' # 👇️ ['one two three four', 'five'] print(my_str.rsplit(' ', 1))
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 在每次出现分隔符时将字符串拆分为子字符串 |
最大分裂 | 最多maxsplit 完成拆分,最右边的(可选) |
除了从右边分裂,rsplit()
表现得像split()
.
就其整体而言,该示例将字符串在空格上从右侧拆分一次,并返回第一个列表项。
主程序
my_str = 'one two three four five' new_str = my_str.rsplit(' ', 1)[0] print(new_str) # 👉️ 'one two three four'
如果字符串包含单个单词或为空,此方法也适用。
主程序
my_str = 'one' # 👇️ ['one'] print(my_str.rsplit(' ', 1)) new_str = my_str.rsplit(' ', 1)[0] print(new_str) # 👉️ 'one'
如果在字符串中找不到提供的分隔符,则该方法返回一个包含单个字符串的列表。
str.rsplit()
在这种情况下,我们访问索引处的列表0
并返回整个字符串。
或者,您可以使用字符串切片。
使用字符串切片从字符串中删除最后一个单词
从字符串中删除最后一个单词:
- 使用该
str.rindex()
方法获取字符串中最后一个空格的索引。 - 使用字符串切片获取字符串的一部分,直到最后一个空格的索引。
- 新字符串将不包含原始字符串的最后一个单词。
主程序
my_str = 'one two three four five' new_str = my_str[:my_str.rindex(' ')] print(new_str) # 👉️ 'one two three four'
我们使用该str.rindex()
方法获取字符串中最后一个单词的索引。
str.rindex
方法返回字符串中找到提供的子字符串的最高索引。
主程序
my_str = 'one two three four five' print(my_str.rindex(' ')) # 👉️ 18
ValueError
当在字符串中找不到提供的子字符串时,该方法将引发。
主程序
my_str = 'one' # ⛔️ ValueError: substring not found print(my_str.rindex(' '))
该
str.rindex()
方法与 非常相似,但它会引发,而不是在字符串中不存在子字符串时返回。 str.rfind()
ValueError
-1
try/except
如果您需要以任何方式处理错误,您可以使用语句。
主程序
my_str = 'one' try: new_str = my_str[:my_str.rindex(' ')] print(new_str) except ValueError: # 👇️ this runs pass
示例中的字符串不包含任何空格,因此引发 a 然后由块处理。
ValueError
except
字符串切片my_str[:my_str.rindex(' ')]
选择字符串的最后一个单词部分。
字符串切片的语法是my_str[start:stop:step]
.
索引是包含的start
,而stop
索引是排他的(最多,但不包括)。
如果start
未指定索引值,我们将从字符串的开头开始。
Python 索引是从零开始的,因此字符串中的第一个字符的索引为0
,最后一个字符的索引为-1
or len(my_str) - 1
。