Combine Dictionary Values
Écrivez une fonction combine_values(*dicts)
qui prend deux ou plusieurs dictionnaires en arguments et renvoie un nouveau dictionnaire qui combine les valeurs des dictionnaires d'entrée. La fonction doit effectuer les étapes suivantes :
- Créez un nouveau
collections.defaultdict
avec list
comme valeur par défaut pour chaque clé.
- Parcourez les dictionnaires d'entrée et pour chaque dictionnaire :
- Parcourez les clés du dictionnaire.
- Ajoutez la valeur de la clé à la liste des valeurs pour cette clé dans le
defaultdict
.
- Convertissez le
defaultdict
en un dictionnaire classique en utilisant la fonction dict()
.
- Retournez le dictionnaire résultant.
La fonction devrait avoir la signature suivante :
def combine_values(*dicts):
pass
from collections import defaultdict
def combine_values(*dicts):
res = defaultdict(list)
for d in dicts:
for key in d:
res[key].append(d[key])
return dict(res)
d1 = {'a': 1, 'b': 'foo', 'c': 400}
d2 = {'a': 3, 'b': 200, 'd': 400}
combine_values(d1, d2) ## {'a': [1, 3], 'b': ['foo', 200], 'c': [400], 'd': [400]}