2016-11-13 4 views
1

Ich benutze Python 3.5 und ich versuche herauszufinden, wie diese beiden Wörterbücher nach Wert zusammengefasst werden. HierSumme zwei Wörterbücher nach Werten

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

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

ist, was ich versucht habe,

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

Dies ist meine gewünschte Ausgabe

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

Was wäre, wenn es mehr als 2 Diktate mit mehr als 3 Elementen in jedem Diktat gäbe? – RomanPerekhrest

Antwort

4

Diese Arbeit sollte:

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

Denken Sie daran, dass dict1.values() kehrt Liste aller Werte im Wörterbuch.

+0

danke! Aber das Drucken nicht die Summe, sondern nur das erste Wörterbuch .. –

+0

@DavideDiMenna das Problem (wenn es ein Problem ist) ist, dass '2.3808784712284318e-28' ist viel größer als' 4.3856601065585343e-38'. So ist die Summe dieser Zahlen sehr nah an '2.3808784712284318e-28' –

Verwandte Themen