Python:切断一个句子的最后一个单词?

从一块文本中切出最后一个单词的最佳方法是什么?

我能想到

  1. 将它分成一个列表(按空格),删除最后一个项目,然后重新列表。
  2. 用正则expression式replace最后一个单词。

我正在采取方法#1,但我不知道如何连接列表…

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

任何代码示例非常感谢。

其实你不需要分割所有的单词。 您可以使用rsplit将最后一个空格符号分割为两部分。

一些例子:

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

你一定要拆分,然后删除最后一个字,因为正则expression式会有更多的复杂性和不必要的开销。 你可以使用更多的Pythonic代码(假设内容是一个string):

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

这将内容分解成单词,除了最后一个单词之外,再加上空格。

如果你喜欢紧凑:

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

如果要保留当前的方法,请使用' '.join(words)连接列表。

你也可以用words = words[:-1]来replacewords = words[len[words -1] words = words[:-1]来利用列表切片。

要么

 import re print ' '.join(re.findall(r'\b\w+\b', text)[:-1]) 

' '.join(words)将把名单放回到一起。

获取空间的最后一个索引并拼接string

 >>> text = 'Python: Cut of the last word of a sentence?' >>> text[:text.rfind(' ')] 'Python: Cut of the last word of a'