Merge Dictionaries in Python with | and update()
Combine default settings with user choices in one expression, and see which value wins when keys clash.
- Merging with the | operator (Python 3.9+)
- Updating in place with |= and update()
- Which value wins for duplicate keys
- theme: dark
- language: en
- language: vi
- font_size: 16
- theme: dark
- language: vi (from preferences)
- font_size: 16
The right side wins
Fusionner des dictionnaires est courant quand on veut combiner des réglages par défaut avec les choix de l'utilisateur, ou mettre à jour des données venant d'une autre source. L'essentiel est de savoir quelle valeur reste dans le résultat quand les deux dictionnaires partagent une clé.
Points clés
- defaults | preferences creates a new dictionary with both sets of keys.
- For a key in both, the value from the right side is kept.
- defaults |= preferences or
defaults.update(preferences)changes defaults in place. - {**a, **b} does the same in older Python versions.
Quand l’utiliser ?
- Découvrir la syntaxe et les notions de base de Python avec des exemples courts et faciles à comprendre.
- Acquérir des bases solides avant de passer à des problèmes plus complexes.
- Exécuter le code directement dans le navigateur, sans installer Python sur l’ordinateur.
Voir comment ça marche
Tapez une clé puis enregistrez-la ou cherchez-la. Python hache la clé pour trouver directement son emplacement, sans parcourir toutes les entrées.
Code d’exemple
defaults = {"theme": "dark", "language": "en"}
preferences = {"language": "vi", "font_size": 16}
settings = defaults | preferences
print(settings)
Résultat de l’exécution
{'theme': 'dark', 'language': 'vi', 'font_size': 16}
Explication du code
L'opérateur | (disponible depuis Python 3.9) crée un nouveau dictionnaire contenant toutes les clés des deux côtés, sans modifier les dictionnaires d'origine. Pour une clé en double comme language, la valeur du dictionnaire de droite remplace celle de gauche, le résultat est donc "vi" et non "en".
Modifiez les valeurs et exécutez le programme avec le compilateur Python en ligne CodeUtility, sans installation locale.
Exercices d’approfondissement
Essayez de modifier le code en suivant les pistes ci-dessous. Changer le code et observer le résultat vous fera bien mieux comprendre la leçon que la simple lecture.
- Changez les données d’entrée et prévoyez le résultat avant d’exécuter.
- Ajoutez une vérification pour les données vides ou invalides.
- Placez le traitement dans une fonction séparée et testez-la avec plusieurs jeux de données.
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
Tous les défis