Нашли альтернативный и более логичный способ. Вместо замены во всем предложении лучше заменить в предложении, которое имеет образец.
with open("my.html","w") as fp:
for list in lists:
search_word = (list.text)
containing_sentence = [i for i in sentence.split('.') if str(search_word) in str(i)][0]
fp.write(containing_sentence.replace(search_word, '<span style="color: red">{}</span>'.format(search_word)))
вышеприведенный код напишет предложения отдельно. Если вы хотите сделать это как предложение, добавьте изменения в список и присоедините их перед записью в файл, как показано ниже.
mod_sentence = []
for list in lists:
search_word = (list.text)
containing_sentence = [i for i in sentence.split('.') if str(search_word) in str(i)][0]+'.'
mod_sentence.append(containing_sentence.replace(search_word, '<span style="color: red">{}</span>'.format(search_word)))
with open("my.html","w") as fp:
fp.write(''.join(mod_sentence))
Надеюсь, это поможет! Ура!