Forum Python

Fil d’Ariane du forum – Vous êtes ici :ForumLangage Python: Langage PythonComment copier un dictionnaire mo …
Please or S’enregistrer to create posts and topics.

Comment copier un dictionnaire modifiée

Bonjour,
Je veux créer une copie de mon dictionnaire pour la modifier sans affecter l’original. Pourtant, lorsque je fais des modifications dans la copie, cela impacte également l’original. Voici mon code :

data = {"a": {"x": 1}, "b": {"y": 2}}
copy_data = data.copy()
copy_data["a"]["x"] = 42
print(data)

Je m’attendais à ce que le dictionnaire data reste inchangé, mais ce n’est pas le cas. Pouvez-vous m’expliquer pourquoi et comment résoudre ce problème ? Merci d’avance !

Bonjour ouven,
Votre copie est une copie superficielle, ce qui signifie que les objets imbriqués (comme les dictionnaires à l’intérieur de data) ne sont pas réellement dupliqués. Utilisez copy.deepcopy pour effectuer une copie profonde:

 

import copy

data = {"a": {"x": 1}, "b": {"y": 2}}
copy_data = copy.deepcopy(data)
copy_data["a"]["x"] = 42
print(data)
# Résultat : {"a": {"x": 1}, "b": {"y": 2}}