Étendre le dictionnaire Python

Neema Muganga 30 janvier 2023
  1. Utilisation de la méthode update() pour étendre un dictionnaire en Python
  2. Utilisation de l’opérateur ** pour étendre un dictionnaire Python
  3. Utilisation de la compréhension de dictionnaire pour étendre un dictionnaire Python
  4. Utilisation de collections.Chainmap pour étendre un dictionnaire Python
Étendre le dictionnaire Python

Cet article montrera à l’utilisateur comment étendre un dictionnaire python avec un autre dictionnaire. Un dictionnaire est un conteneur de données qui peut être modifié (est modifiable), et il stocke ces données sous la forme de paires clé-valeur exemple {key: 'value'}.

Vous pouvez étendre un dictionnaire avec un autre élément par concaténation. Cela signifie que toutes les paires clé-valeur d’un dictionnaire seront ajoutées à l’autre.

Utilisation de la méthode update() pour étendre un dictionnaire en Python

La méthode update() est l’un des moyens utilisés par Python pour implémenter la concaténation de dictionnaires. Cela se fait en ajoutant les éléments de paire clé-valeur d’un autre dictionnaire à la fin du dictionnaire actuel.

Cette méthode est particulièrement utile lors de l’extension d’un dictionnaire qui a des paires clé-valeur différentes d’un autre dictionnaire. Sinon, l’utilisation de update() écrasera les valeurs existantes dans le premier dictionnaire avec les éléments du deuxième dictionnaire.

En termes plus simples, les valeurs du deuxième dictionnaire défini écrasent celles du premier en raison du chevauchement.

first_dict = {"name": "Yolanda", "major": "Bsc Comp Science", "age": 23}
second_dict = {"name": "Beatrice", "major": "Bsc Comp Science", "age": 43}
first_dict.update(second_dict)
print(first_dict)

Production:

{'name': 'Beatrice', 'major': 'Bsc Comp Science', 'age': 43}

Les dictionnaires ci-dessus ont des valeurs key identiques, qui sont name. L’utilisation de update() pour concaténer ces magasins de données entraîne l’écrasement de la valeur de la clé name pour first_dict par celle de second_dict. Par conséquent, il en résulte un dictionnaire unique tel qu’affiché dans la sortie.

Cependant, lors de l’extension d’un dictionnaire avec des valeurs qui ne sont pas déjà définies, update() affiche un seul dictionnaire avec toutes les paires clé-valeur des deux dictionnaires définis.

Exemple:

dict_one = {'u':2, 'v':4, 'w':7}
dict_two = {'x':5, 'y':6, 'z': 8}
dict_one.update(dict_two)
print(dict_one)

Production:

{'u': 2, 'v': 4, 'w': 7, 'x': 5, 'y': 6, 'z': 8}

Utilisation de l’opérateur ** pour étendre un dictionnaire Python

L’utilisation de l’opérateur asterik dans une déclaration d’une ligne ressemblerait à ceci :

dict(iterable, **kwargs)

iterable est le premier dictionnaire défini et le deuxième paramètre est le deuxième dictionnaire (paramètre à mots-clés).

Exemple

y = {"a": 5, "b": 6}
z = {"c": 7, "d": 9}

x = dict(y, **z)
print(x)

Production:

{'a': 5, 'b': 6, 'c': 7, 'd': 9}

S’il y a un chevauchement de paire clé-valeur dans les dictionnaires définis, les éléments du deuxième dictionnaire chevauchent ceux du premier dictionnaire de la même manière que nous l’avons vu dans update().

Exemple:

first_dict = {"a": 2, "b": 3, "c": 5}
second_dict = {"c": 4, "e": 6, "f": 7}
dictt = dict(first_dict, **second_dict)
print(dictt)

Production:

{'a': 2, 'b': 3, 'c': 4, 'e': 6, 'f': 7}

Il est également important de noter que les noms des arguments et les clés dans les éléments **dictionnaire doivent être de type chaîne de données. Sinon, une exception d’erreur de frappe sera affichée.

Exemple:

first_dict = {"a": 2, "b": 3, "c": 5}
second_dict = {"c": 4, "e": 6, 7: 7}
dictt = dict(first_dict, **second_dict)
print(dictt)

Production:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: keywords must be strings

Utilisation de la compréhension de dictionnaire pour étendre un dictionnaire Python

Cette méthode de transformation transforme un dictionnaire Python en un autre en incluant conditionnellement des éléments d’un dictionnaire d’origine dans un nouveau. Cela fonctionne de la même manière que l’utilisation des astérisques comme ci-dessus.

first_dict = {"a": 2, "b": 3, "c": 5}
second_dict = {"c": 4, "e": 6, "f": 7}
the_dictionary = {**first_dict, **second_dict}
print(the_dictionary)

Production:

{'a': 2, 'b': 3, 'c': 4, 'e': 6, 'f': 7}

Utilisation de collections.Chainmap pour étendre un dictionnaire Python

Python fournit la classe ChainMap qui regroupe les dictionnaires serval pour former une vue unique qui peut être mise à jour si nécessaire. Nous l’importons depuis le module collections en Python.

Utilisez cette méthode pour un enchaînement plus rapide des éléments. C’est parce que chainmap n’utilise que les vues des dictionnaires ; par conséquent, cela n’implique pas la copie de données.

De plus, il écrase les clés à tout moment ; par conséquent, on pourrait dire à partir de la sortie quelle est la source de données.

Implémentez-le comme ceci :

from collections import ChainMap

first_dict = {"a": 2, "b": 3, "c": 5}
second_dict = {"c": 4, "e": 6, "f": 7}
a_dictionary = ChainMap(first_dict, second_dict)