我在Python代码中定义了一个列表。
list = ['kumar','satheesh','rajan']
BOLD = '\033[1m'
for i, item in enumerate(list):
list[i] = BOLD + item
print (list)
但我得到了output as ['\x1b[1mfsdfs', '\x1b[1mfsdfsd', '\x1b[1mgdfdf']
但所需的输出为 ['kumar','satheesh','rajan']
如何format
使用list elements
bold
python
{/ 1}}?
答案 0 :(得分:5)
您还需要指定END = '\033[0m'
:
list = ['kumar','satheesh','rajan']
BOLD = '\033[1m'
END = '\033[0m'
for each in list:
print('{}{}{}'.format(BOLD, each, END))
要使列表本身更加粗体,例如 [' kumar',' satheesh',' rajan'] :
print('{}{}{}'.format(BOLD, list, END))
答案 1 :(得分:1)
答案 2 :(得分:0)
Kalyan提供了一种可行的方法,但没有解释原因。
当要求Python打印列表时,它将输出列表标记的开始和结束([]
)以及列表中所有项目的表示。对于字符串,这意味着将转义不可打印的字符。
除了单独打印项目
之外,你几乎无能为力for i lst:
print i
或使用join构建一个唯一的字符串:
string_to_output = '[' + ', '.join(lst) + ']'
print(string_to_output)
顺便说一句,正如Austin '\x01b[1m
所解释的那样,是一个要求ANSI兼容终端以粗体模式传递的序列,因此您必须一次恢复到'\x01b[0m
的正常模式。
请记住:ANSI在Linux终端仿真中很常见,但它仍远未普及......只是在使用它之前尝试使用export TERM=tvi950
(以及google for vt100和tvi950以了解更多信息)。