Copie d’un dictionnaire modifiée
Citation de webstart le 21 novembre 2024, 17 h 25 minBonjour,
J’ai un dictionnaire et je veux en faire une copie avant de modifier la copie. Mais quand je modifie la copie, l’original change aussi. Voici ce que j’ai fait :
data = {"a": {"x": 1}, "b": {"y": 2}}
copy_data = data.copy()
copy_data["a"]["x"] = 42
print(data)
Je m’attendais à ce que data ne soit pas affecté, mais ce n’est pas le cas. Pourquoi ? Et comment le corriger ? Merci !
Bonjour,
J’ai un dictionnaire et je veux en faire une copie avant de modifier la copie. Mais quand je modifie la copie, l’original change aussi. Voici ce que j’ai fait :
data = {"a": {"x": 1}, "b": {"y": 2}}
copy_data = data.copy()
copy_data["a"]["x"] = 42
print(data)
Je m’attendais à ce que data ne soit pas affecté, mais ce n’est pas le cas. Pourquoi ? Et comment le corriger ? Merci !
Citation de CyberGenius le 21 novembre 2024, 18 h 26 minBonjour Webstart,
Utilisez une copie profonde pour copier les objets imbriqués :
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}}
Bonjour Webstart,
Utilisez une copie profonde pour copier les objets imbriqués :
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}}