Python: отрезать последнее слово предложения?
каков наилучший способ срезать последнее слово из блока текста?
Я думаю
- разделите его на список (пробелами) и удалите последний элемент, затем повторите согласование списка.
- используйте регулярное выражение для замены последнего слова.
в настоящее время я использую подход № 1, но я не знаю, как объединить список...
content = content[position-1:position+249] # Content
words = string.split(content, ' ')
words = words[len[words] -1] # Cut of the last word
любые примеры кода очень ценятся.
7 ответов
на самом деле вам не нужно разделить все слова. Вы можете разделить текст по последнему символу пробела на две части, используя rsplit.
пример:
>>> text = 'Python: Cut of the last word of a sentence?'
>>> text.rsplit(' ', 1)[0]
'Python: Cut of the last word of a'
rsplit
является сокращением для "обратного разделения", и в отличие от обычного split
работает с конца строки. Второй параметр-это максимальное количество делений , например значение 1
даст вам двухэлементный список в результате (так как был сделан один сплит, который привел к двум части входной строки).
вы обязательно должны разделить и затем удалить последнее слово, потому что регулярное выражение будет иметь больше осложнений и ненужных затрат. Вы можете использовать более Pythonic код (предполагая, что содержимое является строкой):
' '.join(content.split(' ')[:-1])
Это разбивает содержимое на слова, берет все, кроме последнего слова, и присоединяет слова с пробелами.
Если вы хотите сохранить свой текущий метод, используйте ' '.join(words)
для объединения списка.
вы также можете заменить words = words[len[words -1]
С words = words[:-1]
чтобы использовать нарезку списка.
получить последний индекс пространства и соединить строку
>>> text = 'Python: Cut of the last word of a sentence?'
>>> text[:text.rfind(' ')]
'Python: Cut of the last word of a'