将多值字典列表中的值替换为具有相同键的另一个字典

时间:2017-08-14 01:59:59

标签: python python-2.7 list dictionary

我是新来的python一直在寻找我是否能得到类似的方法来做到这一点,但它们太长了只需要一个简单的方法来做到这一点。

我试图找到如何用多个值字典中的0值替换具有相同键的另一个字典的值。我想避免使用索引,因为值可能会发生变化,还会对输出进行进一步的计算。

mydict = {'A': [20, 0, 15], 'B': [0, 5, 0], 'C': [15, 10, 10]}
mydict2 = {'A': 5, 'B': 3, 'C': 1}

output = {'A': [20, 5, 15], 'B': [3, 5, 3], 'C': [15, 10, 10]}

谢谢!

UPDATE :mydict2实际上是一个嵌套列表(lst),我尝试使用

d2 = dict((x ['key'],x ['val'])for m in mydict) lst = [d2 [x] for x in lst] 打印d2

错误:字符串索引必须是整数,而不是str。

1 个答案:

答案 0 :(得分:1)

您可以使用嵌套列表和字典理解以及0值的小测试:

{key: [x if x!=0 else mydict2[key] for x in vals] for key, vals in mydict.iteritems()}