Как выделить слова предложения жирным и вывести их списком?

На вход поступает строка из слов. Нужно все слова выделить жирным и вывести списком.

import re
class color:
   BOLD = '\033[1m'
   END = '\033[0m'

st = color.BOLD + 'Придет осень и спросит' + color.END
wordList = re.sub("[^\w]", " ", st).split()

print(wordList)

Почему выводит это и не выделяет, хотя если не создавать списка, то выводится жирным?

['1mПридет', 'осень', 'и', 'спросит', '0m']

Вместо ['Придет', 'осень', 'и', 'спросит'] Как исправить?


Ответы (1 шт):

Автор решения: CrazyElf

Сначала чистить предложение от непечатных символов, а потом уже оборачивать каждое слово в спецсимволы. Но в виде списка всё-равно жирным печататься не будет, только в виде строки:

import re
class color:
   BOLD = '\033[1m'
   END = '\033[0m'

st = 'Придет осень и спросит'
wordList = re.sub("[^\w]", " ", st).split()
make_bold = lambda x: color.BOLD + x + color.END
boldList = list(map(make_bold, wordList))

print(boldList)
print(*boldList)

Вывод:

['\x1b[1mПридет\x1b[0m',
 '\x1b[1mосень\x1b[0m',
 '\x1b[1mи\x1b[0m',
 '\x1b[1mспросит\x1b[0m']

Придет осень и спросит

→ Ссылка