Recherche de site Web

3 façons simples de fusionner des dictionnaires Python


Découvrez comment fusionner efficacement des dictionnaires Python à l'aide de méthodes intégrées, du déballage et de l'opérateur union.

Lorsque vous travaillez avec des dictionnaires en Python, vous devrez parfois les fusionner en un seul dictionnaire pour un traitement ultérieur.

Dans ce didacticiel, nous passerons en revue trois méthodes courantes pour fusionner des dictionnaires Python. Plus précisément, nous nous concentrerons sur la fusion de dictionnaires en utilisant :

  • La méthode update()
  • Déballage du dictionnaire
  • L'opérateur syndical

Commençons.

Remarque : Vous pouvez trouver les exemples de code sur GitHub.

1. Utilisation de la méthode update()

Pour fusionner deux dictionnaires, vous pouvez utiliser la méthode de dictionnaire update(). Vous pouvez utiliser la méthode update() pour mettre à jour un dictionnaire existant avec des paires clé-valeur provenant d'un autre dictionnaire, comme ceci :

dict1.update(dict2)

Ici :

  • dict1 : Le dictionnaire original à mettre à jour.
  • dict2 : Le dictionnaire dont les paires clé-valeur seront ajoutées à dict1.

Remarque : Cette méthode modifie directement le dictionnaire d'origine. Si vous ne le souhaitez pas, vous pouvez créer une copie du dictionnaire original et mettre à jour la copie.

Disons que nous avons deux dictionnaires de configuration, config1 et config2 contenant les informations de configuration pour se connecter à une base de données :

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

Fusionnons maintenant une copie de config1 avec config2 :

# Merge using update() method
final_config = config1.copy()  # Create a copy to avoid modifying the original config1
final_config.update(config2)

print(final_config)

Comme vu, la méthode update() ajoute toutes les paires clé-valeur de config2 à final_config, ce qui donne un dictionnaire combiné avec toutes les informations de configuration. .

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

2. Utilisation du déballage du dictionnaire : {**dict1, **dict2}

Tout comme vous décompressez les tuples, vous pouvez également décompresser les dictionnaires en utilisant **. Cela crée un nouveau dictionnaire en décompressant les paires clé-valeur des deux dictionnaires.

Supposons que vous ayez les dictionnaires dict1 et dict2. Vous pouvez décompresser les paires clé-valeur et les fusionner dans un nouveau dictionnaire comme ceci :

merged_dict = {**dict1, **dict2}

Fusionnons les dictionnaires de configuration comme indiqué :

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

# Merge using dictionary unpacking
final_config = {**config1, **config2}

print(final_config)

La méthode de décompression du dictionnaire {**config1, **config2} crée un nouveau dictionnaire final_config qui contient toutes les paires clé-valeur des deux config1 et config2.

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

3. Utiliser le syndicat | Opérateur

L'opérateur union, introduit dans Python 3.9, est une autre manière concise de fusionner deux dictionnaires.

Vous pouvez utiliser l'opérateur union comme ceci :

merged_dict = dict1 | dict2

Utilisation de dict1 | dict2 fusionne dict1 et dict2 dans un nouveau dictionnaire.

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

# Merge using | operator
final_config = config1 | config2

print(final_config)

L'opérateur | fusionne config1 et config2 dans un nouveau dictionnaire final_config :

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

Conclusion

Passons en revue les différentes méthodes pour fusionner des dictionnaires Python :

  • La méthode update()dict1.update(dict2)—met à jour un dictionnaire existant.
  • {**dict1, **dict2} crée un nouveau dictionnaire fusionné en utilisant le déballage.
  • Le syndicat | opérateur en Python 3.9+ fusionne les dictionnaires avec la syntaxe simple dict1 | dict2.

Il ne s'agit pas d'une liste exhaustive couvrant toutes les méthodes de fusion de dictionnaires. Il existe d'autres méthodes telles que la compréhension de listes, la création d'une vue fusionnée de dictionnaires à l'aide de collections.ChainMap et bien plus encore. Mais ce sont les méthodes les plus courantes pour fusionner des dictionnaires.

Bon codage !

Bala Priya C est un développeur et rédacteur technique indien. Elle aime travailler à l'intersection des mathématiques, de la programmation, de la science des données et de la création de contenu. Ses domaines d'intérêt et d'expertise incluent le DevOps, la science des données et le traitement du langage naturel. Elle aime lire, écrire, coder et prendre le café ! Actuellement, elle travaille à l'apprentissage et au partage de ses connaissances avec la communauté des développeurs en créant des didacticiels, des guides pratiques, des articles d'opinion, etc. Bala crée également des aperçus de ressources attrayants et des didacticiels de codage.

Articles connexes