GeeksforGeeks (Nederlands)

in Python kopiëren toewijzings-opdrachten geen objecten, ze maken bindingen tussen een doel en een object. Als we = gebruiken, denkt de operator dat dit een nieuw object aanmaakt, maar dat doet het niet. het maakt alleen een nieuwe variabele aan die de referentie van het oorspronkelijke object deelt. Soms wil een gebruiker met veranderlijke objecten werken, om dat te doen zoekt de gebruiker naar een manier om “echte kopieën” of “klonen” van deze objecten te maken., Of, soms wil een gebruiker kopieën die gebruiker kan wijzigen zonder automatisch het origineel te wijzigen op hetzelfde moment, om dat te doen we kopieën van objecten te maken.

een kopie is soms nodig zodat men de ene kopie kan veranderen zonder de andere te veranderen. In Python zijn er twee manieren om kopieën te maken :

  • diepe kopie
  • ondiepe kopie

om deze kopie te maken, gebruiken we copy module. We gebruiken copy module voor ondiepe en diepe kopieerbewerkingen.,>

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



In het bovenstaande code, de copy() geeft als resultaat de oppervlakkige kopie van de lijst en deepcopy() terug een diepe kopie van de lijst.,

Deep copy

Deep copy is een proces waarin het kopieerproces recursief plaatsvindt. Het betekent eerst een nieuw collectieobject construeren en het vervolgens recursief vullen met kopieën van de onderliggende objecten die in het origineel zijn gevonden. In het geval van deep copy, een kopie van het object wordt gekopieerd in een ander object. Het betekent dat eventuele wijzigingen in een kopie van het object niet weerspiegelen in het oorspronkelijke object. In python wordt dit geà mplementeerd met de “deepcopy()” functie.,




uitvoer:

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 

in het bovenstaande voorbeeld heeft de wijziging in de lijst geen effect in andere lijsten, wat aangeeft dat de lijst diep is gekopieerd.

ondiepe kopie

een ondiepe kopie betekent een nieuw collectieobject maken en het vervolgens vullen met verwijzingen naar de onderliggende objecten in het origineel. Het kopieerproces herhaalt zich niet en maakt daarom geen kopieën van de onderliggende objecten zelf., In het geval van een ondiepe kopie wordt een referentie van een object gekopieerd in een ander object. Het betekent dat alle wijzigingen in een kopie van het object weerspiegelen in het oorspronkelijke object. In python wordt dit geà mplementeerd met de “copy()” functie.



uitvoer:

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

in het bovenstaande voorbeeld heeft de wijziging in de lijst effect in andere lijst, wat aangeeft dat de lijst ondiep gekopieerd is.,

belangrijke punten:
Het verschil tussen ondiep en diep kopiëren is alleen relevant voor samengestelde objecten (objecten die andere objecten bevatten, zoals lijsten of klasse-instanties):

  • een ondiep kopiëren maakt een nieuw samengesteld object en voegt er dan (voor zover mogelijk) verwijzingen in toe naar de objecten die in het origineel zijn gevonden.
  • een diepe kopie maakt een nieuw samengesteld object en voegt er dan recursief kopieën in van de objecten die in het origineel zijn gevonden.

Attentie geek!, Versterk je basis met de Python Programming Foundation cursus en leer de basis.

om te beginnen verbeteren uw interviewvoorbereidingen uw datastructuren concepten met de Python DS cursus.

artikel Tags:

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *