2016-11-13 64 views
1

我正在使用python 3.5,并试图找出如何按值来求和这两个字典。根据值求和两个字典

{0: [4.3856601065585343e-38], 1: [1.9276743522657556e-08], 2: [3.30408817728935e-147]} 

{0: [2.3808784712284318e-28], 1: [1.121936127843438e-67], 2: [3.5039317933946127e-96]} 

这是我曾尝试

def sommadizionari (dict1,dict2): 
    lista={ k: [ dict1.values() + dict2.values()] for k in dict1 } 
    return lista 

这是我所希望输出

{0: [4.3856601065585343e-38+2.3808784712284318e-28], 1: [1.9276743522657556e-08+1.121936127843438e-67], 2: [3.30408817728935e-147+3.5039317933946127e-96]} 
+0

如果在每个字典中会有超过3个项目的2个以上的字典,该怎么办? – RomanPerekhrest

回答

4

这应该工作:

def sommadizionari(dict1, dict2): 
    lista = {k: [dict1[k][0] + dict2[k][0]] for k in dict1} 
    return lista 

请记住,所有的dict1.values()返回列表值在字典中。

+0

谢谢!但这个打印不是总和,但只有第一个字典.. –

+0

@DavideDiMenna问题(如果它是一个问题)是'2.3808784712284318e-28'远远大于'4.3856601065585343e-38'。所以这个数字的总和非常接近'2.3808784712284318e-28' –