Python:如何去掉句子的最后一个单词?

69 投票
10 回答
145397 浏览
提问于 2025-04-16 19:06

从一段文字中提取最后一个单词的最佳方法是什么?

我想到的有:

  1. 把文字按空格分割成一个列表,然后去掉最后一个项目,再把列表重新连接起来。
  2. 使用正则表达式来替换最后一个单词。

我现在在用第一种方法,但我不知道怎么把列表重新连接起来……

content = content[position-1:position+249] # Content
words = string.split(content, ' ')
words = words[len[words] -1] # Cut of the last word

任何代码示例都非常感谢。

10 个回答

6

如果你喜欢简洁:

' '.join(content.split(' ')[:-1]) + ' ...'
20

你应该先把内容分开,然后去掉最后一个词,因为用正则表达式会更复杂,还会增加不必要的负担。你可以用更符合Python风格的代码(假设内容是一个字符串):

' '.join(content.split(' ')[:-1])

这段代码会把内容分成一个个单词,去掉最后一个单词,然后再把剩下的单词用空格连接起来。

192

其实你不需要把所有的单词都分开。你可以通过最后一个空格把文本分成两部分,使用 rsplit 方法。

举个例子:

>>> text = 'Python: Cut off the last word of a sentence?'
>>> text.rsplit(' ', 1)[0]
'Python: Cut off the last word of a'

rsplit 是“反向分割”的简写,它和普通的 split 不同,是从字符串的末尾开始分割的。第二个参数是你想要分割的最大次数,比如说设置为 1,那么结果会是一个包含两个元素的列表(因为只进行了一个分割,得到了输入字符串的两个部分)。

撰写回答