assignation vs. shallow Copy vs. Deep Copy en Python

shallow Copy

Une copie shallow construit un nouvel objet composé puis (dans la mesure du possible) y insère des références aux objets trouvés dans l’original.

Nous avons trois façons différentes de créer une copie:

Ici, toutes les listes ci-dessus contiennent les mêmes valeurs que la liste originale:

>>> print(nums == m1 == m2 == m3)
True

Cependant, l’adresse de la mémoire de chacun est différent.,

cela signifie que cette fois, l’objet de chaque liste a sa propre adresse mémoire indépendante.

nous passons Maintenant à la partie la plus intéressante. Si la liste d’origine est un objet composé (par exemple une liste de listes), après une copie superficielle, les nouveaux éléments de liste font toujours référence aux éléments d’origine.

donc, si vous modifiez les éléments mutables comme des listes, les changements seront reflétés sur les éléments d’origine., Regardons l’exemple ci-dessous pour mieux comprendre:

comme vous le voyez dans l’exemple ci-dessus, alors que nous modifions les éléments de la liste interne dans la nouvelle liste, il est également mis à jour dans la liste cbbc7e1e43″>

etb pointent toujours vers la même adresse mémoire (liste d’origine).

Donc, la nouvelle liste b dispose de sa propre adresse de mémoire, mais ses éléments ne sont pas., En effet, dans shallow copy, au lieu de copier les éléments de la liste dans le nouvel objet, il copie simplement les références à leurs adresses mémoire.

par conséquent, pendant que nous apportons des modifications à l’objet d’origine, cela se reflète dans les objets copiés et vice versa.

C’est une caractéristique d’une copie superficielle.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller à la barre d’outils