GeeksforGeeks (Čeština)

v Pythonu příkazy přiřazení nekopírují objekty, vytvářejí vazby mezi cílem a objektem. Když použijeme = uživatel operátora si myslí, že to vytvoří nový objekt; no, to není. vytváří pouze novou proměnnou, která sdílí odkaz původního objektu. Někdy chce uživatel pracovat s proměnlivých objektů, aby k tomu, že uživatel hledá způsob, jak vytvořit „opravdová kopie“ nebo „klony“ těchto objektů., Nebo někdy uživatel chce kopie, které může uživatel upravit, aniž by současně automaticky upravoval originál, abychom vytvořili kopie objektů.

kopie je někdy potřeba, takže jeden může změnit jednu kopii bez změny druhého. V Pythonu existují dva způsoby, jak vytvořit kopie :

  • Hluboké kopírování
  • Mělké kopie

aby tyto kopie, které používáme copy modul. Používáme modul copy pro mělké a hluboké kopírování.,>

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



výše uvedený kód copy() vrátí mělké kopie seznamu a deepcopy() návrat hlubokou kopii seznamu.,

Deep copy

Deep copy je proces, při kterém probíhá proces kopírování rekurzivně. Znamená to nejprve postavit nový sbírkový objekt a poté jej rekurzivně naplnit kopiemi dětských objektů nalezených v originále. V případě hluboké kopie je kopie objektu zkopírována do jiného objektu. To znamená, že jakékoli změny provedené v kopii objektu se neodrážejí v původním objektu. V Pythonu je to implementováno pomocí funkce“ deepcopy ()“.,



Výstup:

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 

Ve výše uvedeném příkladu, změny provedené v seznamu není efekt v ostatních seznamech, s uvedením seznamu je hluboké kopírovat.

Mělké kopie

mělké kopie znamená výstavbu nového objektu kolekce a pak obývat ji s odkazy na podřízené objekty nalezené v originále. Proces kopírování se neopakuje, a proto nevytváří kopie samotných dětských objektů., V případě mělké kopie je odkaz objektu zkopírován do jiného objektu. To znamená, že jakékoli změny provedené v kopii objektu se odrážejí v původním objektu. V Pythonu je to implementováno pomocí funkce “ kopírovat ()“.



Výstup:

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

Ve výše uvedeném příkladu, změny provedené v seznamu udělal efekt v seznamu, s uvedením seznamu je mělké kopírovat.,

Důležité Body:
rozdíl mezi mělké a hluboké kopírování je relevantní pouze pro složené objekty (objekty, které obsahují jiné objekty, jako jsou seznamy nebo instance třídy):

  • mělký kopie vytvoří novou sloučeninu objekt a pak (v možném rozsahu) vloží odkazy na to, na objekty nalezené v originále.
  • hluboká kopie vytvoří nový složený objekt a poté do něj rekurzivně vloží kopie objektů nalezených v originále.

pozor geek!, Posílejte své základy kurzem Python Programming Foundation a naučte se základy.

nejprve vaše přípravy na pohovor vylepšují koncepty datových struktur s kurzem Python DS.

značky článků:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *