GeeksforGeeks (Français)

En Python, les instructions D’affectation ne copient pas d’objets, elles créent des liaisons entre une cible et un objet. Lorsque nous utilisons = l’opérateur utilisateur pense que cela crée un nouvel objet; Eh bien, ce n’est pas le cas. il crée seulement une nouvelle variable qui partage la référence de l’objet d’origine. Parfois, un utilisateur veut travailler avec des objets mutables, pour ce faire, l’utilisateur cherche le moyen de créer une « véritable copies” ou des « clones” de ces objets., Ou, parfois, un utilisateur veut des copies que l’utilisateur peut modifier sans modifier automatiquement l’original dans le même temps, afin de faire de nous créer des copies d’objets.

Une copie est parfois nécessaire afin que l’on puisse changer une copie sans changer l’autre. En Python, il existe deux façons de créer des copies :

  • copie
  • copie

Dans le but de rendre ces copie, nous utilisons la balise copy module. Nous utilisons le module copy pour les opérations de copie superficielles et profondes.,>

li2 = copy.copy(li1)
li3 = copy.deepcopy(li1)



Dans le code ci-dessus, la balise copy() renvoie la copie de la liste et deepcopy() retour une copie en profondeur de la liste.,

copie

copie en Profondeur est un processus dans lequel le processus de copie se produit de manière récursive. Cela signifie d’abord construire un nouvel objet de collection, puis le remplir récursivement avec des copies des objets enfants trouvés dans l’original. En cas de copie, d’une copie de l’objet est copié dans un autre objet. Cela signifie que toutes les modifications apportées à une copie de l’objet ne reflètent pas dans l’objet d’origine. En python, ceci est implémenté en utilisant la fonction” deepcopy () ».,



Résultat:

The original elements before deep copying1 2 4 The new list of elements after deep copying 1 2 4 The original elements after deep copying1 2 4 

Dans l’exemple ci-dessus, la modification de la liste n’a pas d’effet dans d’autres listes, indiquant la liste est profonde copié.

copie superficielle

Une copie superficielle signifie construire un nouvel objet de collection, puis le remplir avec des références aux objets enfants trouvés dans l’original. Le processus de copie ne se récurse pas et ne créera donc pas de copies des objets enfants eux-mêmes., En cas de copie superficielle, une référence d’objet est copiée dans un autre objet. Cela signifie que toutes les modifications apportées à une copie de l’objet ne reflètent dans l’objet d’origine. En python, ceci est implémenté en utilisant la fonction  » copy () ».



Résultat:

The original elements before shallow copying1 2 4 The original elements after shallow copying1 2 4 

Dans l’exemple ci-dessus, le changement fait dans la liste n’a d’effet dans une autre liste, en indiquant la liste est peu profonde copié.,

points importants:
la différence entre la copie superficielle et profonde n’est pertinente que pour les objets composés (objets qui contiennent d’autres objets, comme des listes ou des instances de classe):

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

Attention geek!, Renforcez vos fondations avec le cours Python Programming Foundation et apprenez les bases.

pour commencer, vos préparatifs D’entrevue améliorent vos concepts de Structures de données avec le cours Python DS.

Tags de L’Article:

Laisser un commentaire

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