更改列表';在python中使用给定的字典创建元素

更改列表';在python中使用给定的字典创建元素,python,Python,我不知道如何使用给定的字典(mydict)更改列表(y)的元素 我做了如下尝试: result = [] for i,j in zip(x,y): color = mydict[j] result.append(color) 预期的答案应该是: result = ['red','blue','green','green','blue','red'] 您的键是字符串,而不是整数。你必须转换其中一个 转换j最简单: for i, j in zip(x, y): c

我不知道如何使用给定的字典(mydict)更改列表(y)的元素

我做了如下尝试:

result = []

for i,j in zip(x,y):
    color = mydict[j]
    result.append(color)
预期的答案应该是:

result =  ['red','blue','green','green','blue','red']  

您的键是字符串,而不是整数。你必须转换其中一个

转换
j
最简单:

for i, j in zip(x, y):
    color = mydict[str(j)]
    result.append(color)
但更好的选择是修复字典:

mydict = {1: 'red',
          2: 'blue',
          3: 'green'}
可由以下列表代替:

colors = [None, 'red', 'blue', 'green']
无论哪种方式,都可以通过列表生成预期输出:

result = [colors[i] for i in y]
您从未实际使用
x
中的值

演示:


'1'
1
不同,为什么要压缩
x
y
并忽略
i
?问题中缺少当前输出。还是有例外?
result = [colors[i] for i in y]
>>> colors = [None, 'red', 'blue', 'green']
>>> [colors[i] for i in y]
['red', 'blue', 'green', 'green', 'blue', 'red']