Table des matières
- Fusion de dictionnaires en Python 2.7
- Fusion de dictionnaires en Python 3.5+
- Comparaison et bonnes pratiques
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.