我有一个包含4个不同数字的列表,总共10个数字。我想为每个数字分配一个颜色/文字。因此,问题是,如何从数字列表转到颜色列表,其中每个相同的数字都由相同的颜色/单词表示?
初始清单:
my_list = [72, 50, 3, 50, 16, 72, 3, 72, 3, 50]
预期产量:
print(my_list) -> ['red', 'blue', 'green', 'blue', 'black', 'red', 'green', 'red', 'green', 'blue']
我尝试了什么?
我从my_list中提取了唯一的数字:
my_list = [72,50,3,50,72,3,72,3,50]
UniqueList = list(set(my_list))
print(UniqueList)
现在,我需要从颜色列表中为这4个唯一数字中的每一个分配颜色['红色','蓝色','绿色','黑色','黄色','紫色'],然后使用颜色。不幸的是,我不知道如何前进。有任何想法吗?
您可以创建一个查找字典:
my_list = [72, 50, 3, 50, 16, 72, 3, 72, 3, 50]
colors = ['red', 'blue', 'green', 'black', 'yellow', 'purple']
lookup = dict(zip(set(my_list), colors))
output = [lookup[number] for number in my_list]
print(output)
输出量
['red', 'green', 'black', 'green', 'blue', 'red', 'black', 'red', 'black', 'green']
您可以将lookup
字典视为将颜色分配给数字之一的函数。在上面的示例中,查找具有以下值:
{72: 'red', 16: 'blue', 50: 'green', 3: 'black'}
这意味着它将在'red'
每次72
出现时分配。您可以lookup
像这样自定义:
lookup = {72 : 'green', 50 : 'black', 3 : 'yellow', 16: 'purple'}
这次每次72
出现green
都会被分配。在此处了解有关如何创建字典的更多信息。
更新资料
如果要保留列表中的出现顺序,可以执行以下操作:
seen = set()
result = []
for e in my_list:
if e not in seen:
result.append(e)
seen.add(e)
print(result)
输出量
[72, 50, 3, 16]
请注意,该列表result
按出现顺序排列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句