Python-我可以为列表中的字符串着色吗



首先,我想澄清的是,在撰写本文时,我是Python和编程的新手,我昨天才学会Python。

我在做一个个人项目时正在学习这门语言。

我的代码获取从1到5的数字,通过随机选择方法运行它们并对它们进行加权,然后返回一个随机列表,如下所示:

[2,1,4,5,2]让我们把这个列表称为xs

这些数字中的每一个都有一个与之相关的字符串列表,让我们称之为";xsn";

因此,1具有xs1=[1stringA','1stringB',…,'1stringsZ'],与2,3,4和5 相同

然后我通过这个代码运行xs

while True:
for i in range(5):
if xs[i] == 1:
xs[i] = (random.choice(xs1))
if xs[i] == 2:
xs[i] = (random.choice(xs2))
if xs[i] == 3:
xs[i] = (random.choice(xs3))    [Tips on how to improve this code are also accepted and apreciated]
if xs[i] == 4:
xs[i] = (random.choice(xs4))
if xs[i] == 5:
xs[i] = (random.choice(xs5))
print(xs)

这将为我提供一个修改后的xs列表,该列表包含字符串,而不是1到5之间的数字。所以如果最后一个列表是

[2,1,4,5,2]

新的xs列表将是

['2stringA','stringA','%stringA],'5stringA'','2stringB']

我想要的是每个数字都有自己的关联颜色,所以"2stringA"one_answers"2stringB"将是绿色,"1stringA"将是白色,依此类推

关于如何实现这一点,有什么想法吗?很抱歉写了这么长的帖子,随着病情的好转,我希望我能以更简洁的方式总结我的问题。

不确定我是否理解正确,但尝试使用此代码

from colorama import Fore
while True:
for i in range(5):
if xs[i] == i:
xs[i] = Fore.GREEN + random.choice(xs + i)

您的问题并不十分清楚。我假设你想打印出不同颜色的代码。有各种各样的库,如termcolor、colorama和彩色

此外,您可以创建一个嵌套列表(xsn = [[], xs1, xs2, xs3, etc](或字典(xsn = {1: xs1, 2: xs3, etc etc}(,这样您就可以使用类似xs[i] = random.choice(xsn[i])的内容,而不是if xs[i]: do something块,

你也可以做一些类似列表理解的事情,但既然你说你昨天开始使用python,那可能不是最好的主意。但如果你决定使用它,它会看起来像new_xs = [random.choice(xsn[i]) for i in xs]

我设法解决了它,现在看起来是这样的,如果有人想知道我是怎么做的,请留下回复,但我对它的结局很满意:^(

如果有,如果你玩TFT,你可能会猜到我在做什么

相关内容

最新更新