Python:如何去掉句子的最后一个单词?
从一段文字中提取最后一个单词的最佳方法是什么?
我想到的有:
- 把文字按空格分割成一个列表,然后去掉最后一个项目,再把列表重新连接起来。
- 使用正则表达式来替换最后一个单词。
我现在在用第一种方法,但我不知道怎么把列表重新连接起来……
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
,那么结果会是一个包含两个元素的列表(因为只进行了一个分割,得到了输入字符串的两个部分)。