更改列表';在python中使用给定的字典创建元素
我不知道如何使用给定的字典(mydict)更改列表(y)的元素 我做了如下尝试:更改列表';在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
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']