Сообщить об ошибке.

Удаление слова из строки Python по фрагменту или шаблону

Строка - это неизменяемый тип в Python, следовательно для каких то изменений, ее необходимо преобразовать в изменяемый тип, например в список. После необходимых изменений , преобразовать список снова в строку.

Рассмотрим пример удаления слова из строки Python по фрагменту или шаблону.

# исходная строка
>>> line = 'остались строки и перенос слова перекресток переоборудование'

# делим строку на слова
>>> words = line.split(' ')
# фрагмент, по которому будем удалять слова
>>> fragment = 'пере'
# новый список оставшихся слов
>>> new_words = []
>>> for word in words:
...     if fragment not in word:
...         new_words.append(word)
...
>>> new_words
# ['остались', 'строки', 'и', 'слова']

# собираем строку используя в качестве разделителя пробел
>>> ' '.join(new_words)
# 'остались строки и слова

Для удаления или изменения строк по шаблону необходимо использовать регулярные выражения и функцию re.sub(). Например удалим все цифры из строки или оставим только цифры.

# исходная строка
>>> line = '156 строк и 13 переносов слов в 10 предложениях'
>>> import re
# удаление цифр из строки
>>> re.sub(r'\d+\s?', '', line).strip()
# 'строк и переносов слов в предложениях'

# удаление слов из строки
>>> re.sub(r'[а-я]+\s?', '', line).strip()
# '156 13 10'

Удаление повторов слов в строке.

Для удаления повторов слов в строке так же необходимо воспользоваться регулярными выражениями и модулем re. В частности будем использовать группы с захватом и обратные ссылки регулярного выражения..

# исходная строка
>>> line = 'Мама мыла мыла раму'
>>> import re
>>> re.sub(r'(\b\w+)\s+\1', r'\1', line)
# 'Мама мыла раму'