Python Copy: Shallow and Deep (Français)

en python, nous avons ce qu’on appelle »deep copy »et »shallow copy », par exemple:

import copyx = copy.copy(y) # shallow copy of yx = copy.deepcopy(y) # deep copy of y

la différence entre la copie peu profonde et profonde n’est pertinente que pour les objets composés (objets qui contiennent tuple ‘et’ ByteArray ‘ou instances de classe).

– Une copie superficielle construit un nouvel objet composé, puis (dans la mesure du possible) insère *les mêmes objets* que le

original contient.,

– Une copie profonde construit un nouvel objet composé puis, récursivement,

y insère *copies* des objets trouvés dans l’original.

Notes:

1. Pour la `liste`, `dict`, `ensemble` et `bytearray`, `copier.copie « est équivalent à » liste.copie’, ‘ dict.copier »,  » ensemble.copiez ‘ et ‘ bytearray.copie`, respectivement.

c’est-à-dire que toutes les méthodes de classe `copy` De `list`, `dict`, `set` et `bytearray` sont des copies peu profondes.

2. Shallow copy est un algorithme de complexité « O (N) » où  » N  » est la longueur de l’objet composé d’origine., La copie superficielle doit allouer au moins la taille de `N` du type `PyBoject*` dans la mémoire et la boucle à attribuer.

3. Deep copy est un algorithme de complexité « O (NM) » où  » N « est la longueur de l’objet composé d’origine et » M  » est la longueur moyenne (en termes d’objets non composés) des éléments du composé.

4. La copie peu profonde et profonde pour les objets non composés est la même, par exemple, `int`, `float`, `str` etc.

5. `liste.copie  » est la même que l’utilisation de la tranche, c’est à dire `a`

Laisser un commentaire

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