2017-08-14 88 views
-4

我是新来的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 =字典((X [ '键'],用于在mydict X X [ 'VAL'])) lst = [d2 [x] for x in lst] print d2

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

+1

显示你的代码,请。 – Julien

+2

它看起来像你希望我们为你写一些代码。尽管许多用户愿意为遇险的编码人员编写代码,但他们通常只在海报已尝试自行解决问题时才提供帮助。展示这一努力的一个好方法是包含迄今为止编写的代码,示例输入(如果有的话),期望的输出以及实际获得的输出(输出,回溯等)。您提供的细节越多,您可能会收到的答案就越多。检查[FAQ]和[问]。 –

回答

1

您可以使用一个小的测试以及嵌套表和字典修真0值:

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

谢谢你的工作!我不知道你可以像这样做dict comprehesion。 – user8459844

相关问题