Строка - это неизменяемый тип в 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) # 'Мама мыла раму'