Bases de Python

Merge Dictionaries in Python with | and update()

Combine default settings with user choices in one expression, and see which value wins when keys clash.

  • Débutant
  • 2 min de lecture
  • 1 exemple exécutable
Ce que vous allez apprendre
  • Merging with the | operator (Python 3.9+)
  • Updating in place with |= and update()
  • Which value wins for duplicate keys
defaults | preferences
defaults
  • theme: dark
  • language: en
preferences
  • language: vi
  • font_size: 16
result
  • 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

  1. defaults | preferences creates a new dictionary with both sets of keys.
  2. For a key in both, the value from the right side is kept.
  3. defaults |= preferences or defaults.update(preferences) changes defaults in place.
  4. {**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

Exécuter le code →
main.py
defaults = {"theme": "dark", "language": "en"}
preferences = {"language": "vi", "font_size": 16}

settings = defaults | preferences
print(settings)
Obtenir un bouton Run pour cet exemple

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.

  1. Changez les données d’entrée et prévoyez le résultat avant d’exécuter.
  2. Ajoutez une vérification pour les données vides ou invalides.
  3. Placez le traitement dans une fonction séparée et testez-la avec plusieurs jeux de données.
Exécuter dans le compilateur Python →

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