Python:切断一个句子的最后一个单词?
从一块文本中切出最后一个单词的最佳方法是什么?
我能想到
- 将它分成一个列表(按空格),删除最后一个项目,然后重新列表。
- 用正则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'