Python: Отключить последнее слово предложения?
Какой лучший способ отрезать последнее слово из блока текста?
Я могу думать о
- Разделите его на список (пробелами) и удалите последний элемент, затем сверяйте список.
- Для замены последнего слова используйте регулярное выражение.
В настоящее время я принимаю подход №1, но я не знаю, как объединить список...
content = content[position-1:position+249] # Content
words = string.split(content, ' ')
words = words[len[words] -1] # Cut of the last word
Приветствуются любые примеры кода.
Ответы
Ответ 1
На самом деле вам не нужно разделить все слова. Вы можете разделить текст на последний пробел на две части, используя rsplit.
Пример:
>>> text = 'Python: Cut of the last word of a sentence?'
>>> text.rsplit(' ', 1)[0]
'Python: Cut of the last word of a'
Ответ 2
Вы должны обязательно разделить, а затем удалить последнее слово, потому что регулярное выражение будет иметь как больше осложнений, так и ненужные служебные данные. Вы можете использовать более Pythonic-код (при условии, что контент является строкой):
' '.join(content.split(' ')[:-1])
Это разделяет содержимое на слова, принимает все, кроме последнего слова, и присоединяет слова с пробелами.
Ответ 3
Если вам нравится компактность:
' '.join(content.split(' ')[:-1]) + ' ...'
Ответ 4
Если вы хотите сохранить свой текущий метод, используйте ' '.join(words)
, чтобы объединить список.
Вы также можете заменить words = words[len[words -1]
на words = words[:-1]
, чтобы использовать сортировку списка.
Ответ 5
ИЛИ
import re
print ' '.join(re.findall(r'\b\w+\b', text)[:-1])
Ответ 6
' '.join(words)
вернет список вместе.
Ответ 7
Получить последний индекс пространства и сращить строку
>>> text = 'Python: Cut of the last word of a sentence?'
>>> text[:text.rfind(' ')]
'Python: Cut of the last word of a'