En lisant la documentation de dict.copy()
, il indique qu'il crée une copie superficielle du dictionnaire. Il en va de même pour le livre que je suis (Beazley's Python Reference), qui dit:
La méthode m.copy () crée une copie superficielle des éléments contenus dans un objet de mappage et les place dans un nouvel objet de mappage.
Considère 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}
J'ai donc supposé que cela mettrait à jour la valeur de original
(et ajouterait 'c': 3) également puisque je faisais une copie superficielle. Comme 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 superficielles, pourquoi est-ce que dict.copy()
cela ne fonctionne pas comme je m'y attendais? Ou ma compréhension de la copie superficielle vs profonde est défectueuse?