GeeksforGeeks (Polski)

w Pythonie polecenia przydziału nie kopiują obiektów, tworzą powiązania między celem a obiektem. Gdy używamy= Operator user myśli, że to tworzy nowy obiekt; cóż, tak nie jest. tworzy tylko nową zmienną, która dzieli odniesienie do oryginalnego obiektu. Czasami użytkownik chce pracować ze zmiennymi obiektami, w tym celu szuka sposobu na tworzenie „prawdziwych kopii „lub” klonów ” tych obiektów., Lub, czasami użytkownik chce kopii, które użytkownik może modyfikować bez automatycznego modyfikowania oryginału w tym samym czasie, w tym celu tworzymy kopie obiektów.

czasami potrzebna jest kopia, aby można było zmienić jedną kopię bez zmiany drugiej. W Pythonie istnieją dwa sposoby tworzenia kopii :

  • głęboka Kopia
  • Płytka Kopia

w celu wykonania tych kopii używamy modułu copy. Używamy modułu copy do płytkich i głębokich operacji kopiowania.,>

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



w powyższym kodzie copy() i zwraca małą kopię listy i deepcopy() i zwrot głęboką kopię listy.,

Deep copy

Deep copy jest procesem, w którym proces kopiowania odbywa się rekurencyjnie. Oznacza to najpierw konstruowanie nowego obiektu collection, a następnie rekurencyjne wypełnianie go kopiami obiektów potomnych znalezionych w oryginale. W przypadku głębokiej kopii, kopia obiektu jest kopiowana w innym obiekcie. Oznacza to, że wszelkie zmiany dokonane w kopii obiektu nie odzwierciedlają w oryginalnym obiekcie. W Pythonie jest to zaimplementowane za pomocą funkcji ” deepcopy ()”.,



Wyjście:

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 

w powyższym przykładzie zmiana na liście nie miała wpływu na inne listy, wskazując, że lista jest głęboko kopiowana.

Płytka Kopia

płytka Kopia oznacza zbudowanie nowego obiektu kolekcji, a następnie wypełnienie go referencjami do obiektów potomnych znalezionych w oryginale. Proces kopiowania nie wykonuje rekurencji i dlatego nie tworzy kopii obiektów potomnych., W przypadku płytkiej kopii, odniesienie do obiektu jest kopiowane w innym obiekcie. Oznacza to, że wszelkie zmiany dokonane w kopii obiektu odzwierciedlają obiekt oryginalny. W Pythonie jest to zaimplementowane za pomocą funkcji ” copy ()”.



Wyjście:

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

w powyższym przykładzie zmiana dokonana na liście miała wpływ na inną listę, wskazując listę jest płytko kopiowany.,

ważne punkty:
różnica między kopiowaniem płytkim a głębokim dotyczy tylko obiektów złożonych (obiektów, które zawierają inne obiekty, takie jak listy lub instancje klas):

  • płytka Kopia konstruuje nowy obiekt złożony, a następnie (w miarę możliwości) wstawia do niego odniesienia do obiektów znalezionych w oryginale.
  • głęboka Kopia konstruuje nowy obiekt złożony, a następnie rekurencyjnie wstawia do niego kopie obiektów znalezionych w oryginale.

Uwaga geek!, Wzmocnij swoje podstawy dzięki kursowi Python Programming Foundation i naucz się podstaw.

na początek przygotowanie do rozmowy kwalifikacyjnej wzbogaca koncepcje struktur danych o kurs Python DS.

Tagi artykułów:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *