2016-11-13 67 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' –