Для более точного управления я бы посоветовал использовать цикл for (в этом примере это упрощено как понимание списка):
text = "Stephen went to the park on Tuesday with Sarah. Stephen couldn't go to my birthday party."
filter_list = ['Stephen', 'Sarah', 'Tuesday']
boldened = " ".join(["<b>{}</b>".format(word) if word.strip() in filter_list else word for word in text.split(" ")])
Чтобы увидеть, что используют эти выходы:
print(boldened)
Ожидаемый результат:
"<b>Stephen</b> went to the park on <b>Tuesday</b> with Sarah. <b>Stephen</b> couldn't go to my birthday party."
ПРИМЕЧАНИЕ: помните, что в Python list
- это тип, не используйте его в качестве идентификатора для переменных.
Кроме того, вы получаете теги <b>
, напечатанные в виде простого текста, поскольку вы не отображаете переменную ctext
в виде HTML, вместо этого напишите:
{{ ctext | safe }}
ПРЕДУПРЕЖДЕНИЕ: используйте safe
только с теми строками, в которых вы абсолютно уверены, действительно безопасны !
Удачи.