pythonsplitconcatenationtext-segmentation

Python: Cut off the last word of a sentence?


What's the best way to slice the last word from a block of text?

I can think of

  1. Split it to a list (by spaces) and removing the last item, then reconcatenating the list.
  2. Use a regular expression to replace the last word.

I'm currently taking approach #1, but I don't know how to concatenate the list...

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

Any code examples are much appreciated.


Solution

  • 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).