Python: Cut off the last word of a sentence?

Actually you don't need to split all words. You can split your text by last space symbol into two parts using rsplit.

Example:

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

rsplit is a shorthand for "reverse split", and unlike regular split works from the end of a string. The second parameter is a maximum number of splits to make - e.g. value of 1 will give you two-element list as a result (since there was a single split made, which resulted in two pieces of the input string).


You should definitely split and then remove the last word because a regex will have both more complications and unnecessary overhead. You can use the more Pythonic code (assuming content is a string):

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

This splits content into words, takes all but the last word, and rejoins the words with spaces.