Combiner les valeurs de dictionnaires

PythonPythonBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les dictionnaires sont une structure de données fondamentale en Python, et ils sont utilisés pour stocker des paires clé-valeur. Parfois, nous pouvons avoir besoin de combiner les valeurs de deux ou plusieurs dictionnaires en un seul dictionnaire. Dans ce défi, vous écrirez une fonction qui prend deux ou plusieurs dictionnaires en arguments et renvoie un nouveau dictionnaire qui combine les valeurs des dictionnaires d'entrée.

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 :

  1. Créez un nouveau collections.defaultdict avec list comme valeur par défaut pour chaque clé.
  2. 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.
  3. Convertissez le defaultdict en un dictionnaire classique en utilisant la fonction dict().
  4. 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]}

Résumé

Dans ce défi, vous avez appris à combiner les valeurs de deux ou plusieurs dictionnaires en un seul dictionnaire. Vous avez écrit une fonction qui prend deux ou plusieurs dictionnaires en arguments et renvoie un nouveau dictionnaire qui combine les valeurs des dictionnaires d'entrée.