Lors de la lecture de la documentation pour dict.copy()
, il dit qu'il fait une copie du dictionnaire. En va de même pour le livre que je suis (Beazley du Python de Référence), qui dit:
La m.copier() la méthode la rend un peu copie des éléments contenus dans un l'objet de mappage et les place dans un une nouvelle cartographie de l'objet.
Réfléchissez à ceci:
>>> original = dict(a=1, b=2)
>>> new = original.copy()
>>> new.update({'c': 3})
>>> original
{'a': 1, 'b': 2}
>>> new
{'a': 1, 'c': 3, 'b': 2}
Donc, je présume que cela permettrait de mettre à jour la valeur de original
(et ajouter 'c': 3) depuis que j'ai été faire une copie. Si vous le faites pour une liste:
>>> original = [1, 2, 3]
>>> new = original
>>> new.append(4)
>>> new, original
([1, 2, 3, 4], [1, 2, 3, 4])
Cela fonctionne comme prévu.
Puisque les deux sont des copies, pourquoi est-ce que l' dict.copy()
ne fonctionne pas comme prévu? Ou ma compréhension de la faible vs profonde de la copie est défectueux?