2017-10-16 7 views
0

Avant de réclamer cette question est un doubleComment puis-je fusionner des valeurs de dictionnaire par clé?

J'ai trouvé un similar question posted here. Je pense que c'est parce que j'utilise python3, mais j'ai reçu TypeError: unsupported operand type(s) for +: 'dict_items' and 'dict_items' et AttributeError: 'dict' object has no attribute 'iterkeys' pour diverses solutions proposées.

Question

J'ai deux dictionnaires avec des clés identiques. Je voudrais les fusionner en un seul dictionnaire dans lequel les clés restent les mêmes mais les valeurs sont combinées. À titre d'exemple, j'ai quelques exemples de données de carnet de notes. Je voudrais placer les paires clé-valeur du dictionnaire comme étiquettes dans une légende.

dict_one = {'average' : 84, 'median' : 86.5, 'stdev' : 3.35} 
dict_two = {'average' : 'B', 'median' : 'B+', 'stdev' : 'F'} 

Comment puis-je modifier les dictionnaires pour retourner

dict_res = {'average' : (84, 'B'), 'median' : (86.5, 'B+'), 'stdev' : (3.35, 'F')} 

Je pense un tuple (exemple: (84, 'B')) serait préférable, mais une liste (par exemple: [84, 'B']) peut fonctionner aussi.

+1

'{key: (dict_one [key], dict_two [key]) pour la clé dans dict_one}' si vous avez toujours les mêmes touches. –

Répondre

0

Essayez:

dict_one = {'average' : 84, 'median' : 86.5, 'stdev' : 3.35} 
dict_two = {'average' : 'B', 'median' : 'B+', 'stdev' : 'F'} 
ds = [dict_one, dict_two] 
d = {} 
for k in dict_one.keys(): 
    d[k] = tuple(d[k] for d in ds) 

print(d)