2017-10-20 36 views
1

J'ai deux dictionnaires, avec les mêmes clés, mais des valeurs différentes. Je veux faire un nouveau dictionnaire avec toutes les valeurs de dictionary1 à résumer avec la deuxième valeur de dictionary2.Résumer la deuxième valeur d'un dictionnaire avec toutes les valeurs d'un autre dictionnaire

input: 
dic1 = { 'ENST1' : [ 33, 55, 66, 77 ], 'ENST2' : [ 55, 32, 45 ] } 
dic2 = { 'ENST1' : [ 'abc', 100, 200 ], 'ENST2' : [ 'cdg', 200, 300 ] } 

output: 
dic3 = { 'ENST1' : [ 133, 155, 166, 177 ] , [ 'ENST2' : 255, 232, 245 ] } 

J'utilise python 3.6.

+0

Pouvez-vous préciser ce que vous avez déjà essayé? – thatrockbottomprogrammer

+0

Vos valeurs ne correspondent pas? – kbball

Répondre

0

Je l'ai résolu. Pour l'avenir, si quelqu'un a besoin de la réponse, cela a fait le travail:

for key in dic1: 
    for i in range(0,len(dic1[key])): 
     if len(dic1[key]) > 0: 
      dic1[key][i] = dic1[key][i] + dic2[key][1] 

J'écrasé directement dic1, si cela n'a pas été désiré alors je pourrais en faire une copie dic1 en dic3 et faire sur la dernière ligne:

dic3[key][i] = dic1[key][i] + dic2[key][1] 
0

Cette version travaillerait aussi:

dic3 = {} 

for (k,v), (k2,v2) in zip(dic1.items(), dic2.items()): 
    dic3[k] = [x+y for x, y in zip(v, v2)]