GeeksforGeeks (Norsk)

I Python, Oppdrag uttalelser ikke kopiere objekter, de skaper bindinger mellom et mål og et objekt. Når vi bruker = operatør brukeren mener at dette skaper et nytt objekt; vel, det har det ikke. Det skaper bare en ny variabel som deler referanse til det originale objektet. Noen ganger kan en bruker ønsker å jobbe med foranderlig objekter, for å gjøre det brukeren leter etter en måte å lage «ekte kopier» eller «kloner» av disse objektene., Eller, noen ganger en bruker ønsker kopier brukeren kan endre uten automatisk å endre det opprinnelige på samme tid, for å gjøre det vi lage kopier av objekter.

En kopi er noen ganger nødvendig, slik at man kan endre en kopi, uten å endre andre. I Python er det to måter å lage kopier :

  • Dyp kopi
  • Grunne kopi

for å gjøre disse kopi, bruker vi copy modulen. Vi bruker copy modulen for grunt og dypt kopi operasjoner.,>

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



I koden ovenfor, copy() returnerer grunn kopi av listen og deepcopy() tilbake en dyp kopi av listen.,

Dyp kopi

Dyp kopi er en prosess der kopieringen skjer med undermapper. Det betyr først konstruere en ny samling objekt og undermapper å fylle det med kopier av barn objekter som finnes i den opprinnelige. I tilfelle av en dyp kopi, en kopi av objektet kopieres i andre objekt. Det betyr at eventuelle endringer som er gjort til en kopi av objektet ikke har rot i det opprinnelige objektet. I python, dette er implementert ved hjelp av «deepcopy ()» – funksjonen.,



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 eksemplet over, endring i listen ikke effekt i andre lister, indikerer listen er dypt kopiert.

Grunne kopi

En grunn kopi betyr å konstruere en ny samling objekt og deretter fylle det med referanser til barnet objekter som finnes i den opprinnelige. Kopiering prosessen ikke recurse, og derfor vil ikke lage kopier av barn objektene selv., I tilfelle av grunne kopiere, en referanse til objektet er kopiert i andre objekt. Det betyr at eventuelle endringer som er gjort til en kopi av objektet må reflektere i det opprinnelige objektet. I python, dette er implementert ved hjelp av «copy ()» – funksjonen.



Output:

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

I eksemplet over, endring i listen gjorde effekt i en annen liste, noe som indikerer listen er grunt kopiert.,

Viktig Poeng:
forskjellen mellom grunt og dypt kopiering er bare relevant for sammensatte objekter (objekter som inneholder andre objekter, slik som lister eller klasse forekomster):

  • En grunn kopi konstruerer en ny sammensatt objekt og deretter (i den grad det er mulig) setter inn referanser i det å gjenstandene som finnes i den opprinnelige.
  • En dyp kopi konstruerer en ny sammensatt objekt og deretter, med undermapper, setter kopier til det av gjenstandene som ble funnet i den opprinnelige.

Oppmerksomhet geek!, Styrke grunnlaget med Python-Programmering grunnkurs og lære deg det grunnleggende.

til Å begynne med, intervjuet forberedelser Forbedre dine Data Strukturer konsepter med Python-DS Kurs.

Artikkelen Tagger :

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *