2

我在 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_boldpython

4

3 回答 3

6

您还需要指定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))
于 2018-05-22T05:23:15.770 回答
1

尝试如下打印

for each in list:
    print(each)

以下是输出 在此处输入图像描述

于 2018-05-22T05:18:33.573 回答
0

Kalyan 给出了一种可能的方法,但未能解释原因。

[]当要求 Python 打印一个列表时,它会输出列表标记( )的开始和结束以及列表中所有项目的表示。对于字符串,这意味着将转义不可打印的字符。

除了单独打印项目之外,您几乎无能为力

for i lst:
    print i

或使用连接构建一个唯一的字符串:

string_to_output = '[' + ', '.join(lst) + ']'
print(string_to_output)

顺便说一句,正如 Austin 所解释的那样,这'\x01b[1m是一个要求 ANSI 兼容终端以粗体模式传递的序列,因此您必须一次恢复到正常模式'\x01b[0m

请记住:ANSI 在 Linux 终端仿真中很常见,但它还远未普及……在使用export TERM=tvi950之前尝试使用它(谷歌搜索 vt100 和 tvi950 以了解更多信息)……

于 2018-05-22T05:43:33.693 回答