有没有一种方法可以在Python中为列表中的单个元素着色?

2024-04-18 05:04:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想给numpy.ndarray中的元素着色,特别是那些numpy.int64类型的元素

例如,我如何给下面列表中的每个1上色,比如说,红色

    L = [1,0,1,0,1]

我试过使用colorama。这是我的密码。结果也包括在内

from colorama import Fore, Back, Style

L = [i%2 for i in range(6)]

for i in L[::2]:
    L[i] = Fore.RED + str(i)

print(L)

['\x1b[31m1', '\x1b[31m0', '\x1b[31m1', '\x1b[31m0', '\x1b[31m1']

Tags: infromnumpy元素密码类型列表for
3条回答

据我所知,我们不能将变量作为有色变量存储在列表中。colorama仅以彩色打印变量。因此,您的代码将是

from colorama import Fore, Back, Style

L = [i%2 for i in range(6)]

for i in L[::2]:
    L[i] = str(i)

for item in L:print(Fore.RED+ str(item))
print(Style.RESET_ALL)

使用init()方法并将autoreset设置为True

from colorama import Fore, init
init(autoreset=True)

L = [i%2 for i in range(6)]
for i,x in enumerate(L):
    if x == 1: L[i] = Fore.RED + str(x)
    else: L[i] = str(x)

for x in L: print(x)

列表没有颜色的概念。Colorama计算机可以理解为以不同颜色表示值的字符。如果要使用特定颜色打印列表,则需要打印列表中的每个项目

假设您要使1变为红色:

for i in range(len(L)):
    if L[i] == 1:
        L[i] = Fore.RED + str(L[i]) + Fore.RESET
print(L)
# [0, '\x1b[31m1\x1b[39m', 0, '\x1b[31m1\x1b[39m', 0, '\x1b[31m1\x1b[39m']

print(', '.join(str(item) for item in L))  # Now prints certain items in red and others normal.

相关问题 更多 >