Ajouter dictionnaires

Nouvelle version de cet exercice sur CodEx

Ajouter des dictionnaires / Union de dictionnaires

Écrire une fonction ajoute_dictionnaires qui prend en paramètres deux dictionnaires d1 et d2 dont les clés sont des nombres et renvoie le dictionnaire d défini de la façon suivante :

  • Les clés de d sont celles de d1 et celles de d2 réunies.
  • Si une clé est présente dans les deux dictionnaires d1 et d2, sa valeur associée dans le dictionnaire d est la somme de ses valeurs dans les dictionnaires d1 et d2.
  • Si une clé n’est présente que dans un des deux dictionnaires, sa valeur associée dans le dictionnaire d est la même que sa valeur dans le dictionnaire où elle est présente.

Exemple

🐍 Script Python
>>> ajoute_dictionnaires({1: 5, 2: 7}, {2: 9, 3: 11})
{1: 5, 2: 16, 3: 11}
>>> ajoute_dictionnaires({}, {2: 9, 3: 11})
{2: 9, 3: 11}
>>> ajoute_dictionnaires({1: 5, 2: 7}, {})
{1: 5, 2: 7}
Compléter le code ci-dessous

###
# Testsbksl-nlassert ajoutepy-unddictionnaires({1: 5, 2: 7}, {2: 9, 3: 11}) == {1: 5, 2: 16, 3: 11}bksl-nlassert ajoutepy-unddictionnaires({}, {2: 9, 3: 11}) == {2: 9, 3: 11}bksl-nlassert ajoutepy-unddictionnaires({1: 5, 2: 7}, {}) == {1: 5, 2: 7}bksl-nlbksl-nl# Autres testsbksl-nlassert ajoutepy-unddictionnaires({1: 5, 2: 16, 3: 11}, {1: 5, 2: 16, 3: 11}) == {1: 10, 2: 32, 3: 22}bksl-nlassert ajoutepy-unddictionnaires({}, {}) == {}bksl-nldicopy-und1 = {i:2py-stri for i in range(20)}bksl-nldicopy-und2 = {i:3py-stri for i in range(20)}bksl-nldicopy-und3 = {i:5py-stri for i in range(20)}bksl-nlassert ajoutepy-unddictionnaires(dicopy-und1, dicopy-und2) == dicopy-und3bksl-nl 5/5
def ajoutepy-unddictionnaires(d1, d2):bksl-nl ...bksl-nlbksl-nl# Testsbksl-nlassert ajoutepy-unddictionnaires({1: 5, 2: 7}, {2: 9, 3: 11}) == {1: 5, 2: 16, 3: 11}bksl-nlassert ajoutepy-unddictionnaires({}, {2: 9, 3: 11}) == {2: 9, 3: 11}bksl-nlassert ajoutepy-unddictionnaires({1: 5, 2: 7}, {}) == {1: 5, 2: 7}bksl-nlbksl-nlbksl-nldef ajoutepy-unddictionnaires(d1, d2):bksl-nl for cle in d2:bksl-nl if cle in d1:bksl-nl d1[cle] += d2[cle]bksl-nl else:bksl-nl d1[cle] = d2[cle]bksl-nl return d1bksl-nlbksl-nl