Python Programming

Fusion Efficace de Dictionnaires en Python 2 et 3

Spread the love

Table des matières

Fusion de dictionnaires en Python 2.7

Python 2.7 manque des fonctionnalités élégantes de fusion de dictionnaires disponibles dans les versions ultérieures. Nous nous appuyons principalement sur la méthode update() ou, moins fréquemment, sur la concaténation de dictionnaires.

Utilisation de update()

La méthode update() modifie le dictionnaire sur lequel elle est appelée, en ajoutant des paires clé-valeur provenant d’un autre dictionnaire. Les clés existantes sont écrasées par les valeurs du second dictionnaire.


dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}

dict1.update(dict2)
print(dict1)  # Résultat : {'a': 1, 'b': 3, 'c': 4}
  

Concaténation de dictionnaires

Bien que possible, cette approche est moins efficace et nécessite la création d’un nouveau dictionnaire. Elle est généralement moins préférée que update().


dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}

merged_dict = dict(dict1.items() + dict2.items())
print(merged_dict)  # Résultat : {'a': 1, 'b': 3, 'c': 4}

#Alternative utilisant dict.copy():
merged_dict = dict1.copy()
merged_dict.update(dict2)
print(merged_dict) #Résultat: {'a': 1, 'b': 3, 'c': 4}
  

Fusion de dictionnaires en Python 3.5+

Python 3.5 a introduit le déballage de dictionnaires beaucoup plus propre utilisant l’opérateur **. Cela crée un nouveau dictionnaire, combinant toutes les paires clé-valeur. Les clés dupliquées sont résolues par la valeur du dictionnaire le plus à droite.


dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}

merged_dict = {**dict1, **dict2}
print(merged_dict)  # Résultat : {'a': 1, 'b': 3, 'c': 4}
  

C’est généralement la méthode préférée pour sa lisibilité et pour éviter la modification sur place.

Comparaison et bonnes pratiques

La méthode optimale dépend de votre version de Python et de votre style de codage. Pour Python 2.7, update() est recommandé. Pour Python 3.5 et supérieur, le déballage de dictionnaire (**) offre une meilleure lisibilité et évite les effets secondaires potentiels. Dans les deux cas, les dictionnaires suivants écrasent les valeurs des clés dupliquées. Pour une gestion plus complexe des collisions de clés (par exemple, la combinaison de valeurs), vous devrez implémenter une logique personnalisée.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *