dict.update()

Ajoute à un dictionnaire les paires d’un autre dictionnaire ou d’arguments, en écrasant les clés existantes.

Renvoie
None (le dictionnaire change sur place).
Modifie l’original
Oui
Sur cette page

Exemple

#
Python
profile = {"name": "Léa", "level": 3, "theme": "light"}

profile.update({"level": 4, "streak": 12})
print(profile)

profile.update(theme="dark")
print(profile)
Résultatrésultat enregistré, vous pouvez le vérifier
{'name': 'Léa', 'level': 4, 'theme': 'light', 'streak': 12}
{'name': 'Léa', 'level': 4, 'theme': 'dark', 'streak': 12}

Définition et utilisation

#

La méthode update() ajoute au dictionnaire toutes les paires d’un dictionnaire donné, d’une liste de paires ou d’arguments nommés. Si une clé existe déjà, sa valeur est remplacée par la nouvelle. Le dictionnaire change sur place, et la méthode renvoie None.

Les usages typiques sont la superposition des réglages d’un utilisateur sur des valeurs par défaut, et la modification de plusieurs champs d’un enregistrement à la fois plutôt qu’un par un.

Depuis Python 3.9, des opérateurs sont aussi disponibles : a | b crée un nouveau dictionnaire fusionné sans changer les originaux, et a |= b fonctionne comme update(). En cas de conflit de clés, c’est toujours la valeur de droite qui l’emporte.

Syntaxe

#
Syntaxe
dictionnaire.update(other)
dictionnaire.update(key=value, …)

Paramètres

#
  • other

    un dictionnaire ou une collection de paires, optionnel

    La source des nouvelles paires clé-valeur.
  • **kwargs

    optionnel

    Paires données comme arguments nommés, par ex. level=4.

Plus d’exemples

#
Réglages par défaut et l’opérateur |
Python
defaults = {"theme": "dark", "lang": "fr", "sound": True}
user = {"lang": "en", "sound": False}

settings = defaults | user
print(settings)
print(defaults)
Résultatrésultat enregistré, vous pouvez le vérifier
{'theme': 'dark', 'lang': 'en', 'sound': False}
{'theme': 'dark', 'lang': 'fr', 'sound': True}
Piège : update() renvoie None
Python
stats = {"exp": 100}
result = stats.update(exp=150)

print(result)
print(stats)
Résultatrésultat enregistré, vous pouvez le vérifier
None
{'exp': 150}

Bonnes pratiques

#
  • N’assignez pas le résultat de la méthode : d = d.update(...) transforme le dictionnaire en None. Appelez update() comme une instruction à part.
  • Quand l’original doit rester inchangé, créez un nouveau dictionnaire avec a | b ou {**a, **b}.
  • La fusion est superficielle : un dictionnaire imbriqué à droite remplace entièrement celui de gauche au lieu de s’y fondre.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.