GeeksforGeeks (Svenska)

i Python kopierar inte Tilldelningsdeklarationer objekt, de skapar bindningar mellan ett mål och ett objekt. När vi använder = operatörsanvändare tror att detta skapar ett nytt objekt; det gör det inte. det skapar bara en ny variabel som delar referensen för det ursprungliga objektet. Ibland vill en användare arbeta med muterbara objekt, för att göra att användaren letar efter ett sätt att skapa ”riktiga kopior” eller ”kloner” av dessa objekt., Eller, ibland vill en användare kopior som användaren kan ändra utan att automatiskt ändra originalet samtidigt, för att göra att vi skapar kopior av objekt.

ibland behövs en kopia så att man kan ändra en kopia utan att ändra den andra. I Python finns det två sätt att skapa kopior :

  • Deep copy
  • Shallow copy

för att göra dessa kopior använder vi copy modul. Vi använder copy modul för grunda och djupa kopieringsoperationer.,>

li2 =copy.copy(li1)

li3 = copy.deepcopy(li1)



i ovanstående kod returnerarcopy()den grunda kopian av listan ochdeepcopy() returnerar en djup kopia av listan.,

Deep copy

Deep copy är en process där kopieringsprocessen sker rekursivt. Det innebär att först bygga ett nytt samlingsobjekt och sedan rekursivt fylla den med kopior av de barnobjekt som finns i originalet. Vid djup kopia kopieras en kopia av objektet i ett annat objekt. Det innebär att alla ändringar som görs i en kopia av objektet inte reflekterar i det ursprungliga objektet. I python implementeras detta med funktionen ” deepcopy ()”.,



Output:

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 

i ovanstående exempel påverkade inte ändringen i listan i andra listor, vilket indikerar att listan är djupt kopierad.

Grundkopia

en grundkopia innebär att bygga ett nytt samlingsobjekt och sedan fylla det med referenser till de barnobjekt som finns i originalet. Kopieringsprocessen återkommer inte och kommer därför inte att skapa kopior av barnobjekten själva., Vid Grunt kopia kopieras en referens av objekt i ett annat objekt. Det innebär att alla ändringar som görs i en kopia av objektet reflekterar i det ursprungliga objektet. I python implementeras detta med funktionen ” Kopiera ()”.



Output:

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

i ovanstående exempel påverkade ändringen i listan i annan lista, vilket indikerar att listan är grundkopierad.,

viktiga punkter:
skillnaden mellan grunt och djupt kopiering är endast relevant för sammansatta objekt (objekt som innehåller andra objekt, som listor eller klassinstanser):

  • en grund kopia konstruerar ett nytt sammansatta objekt och sedan (i möjligaste mån) infogar referenser till de objekt som finns i originalet.
  • en djup kopia konstruerar ett nytt sammansatt objekt och infogar sedan rekursivt kopior i det av objekten som finns i originalet.

uppmärksamhet nörd!, Stärka dina stiftelser med Python Programming Foundation Kurs och lära sig grunderna.

till att börja med förbättrar dina intervjupreparat dina datastrukturer koncept med Python DS-kursen.

artikel taggar:

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *