GeeksforGeeks (Suomi)

Python, Tehtävän lausunnot eivät ole kopioida esineitä, ne luovat siteet välillä tavoite ja kohde. Kun käytämme = operaattori, käyttäjä luulee, että tämä luo uuden objektin; no, se ei ole. Se vain luo uusi muuttuja, joka jakaa viittaus alkuperäisen objektin. Joskus käyttäjä haluaa työskennellä mutable esineitä, jotta tehdä, että käyttäjä etsii tapa luoda ”todellisia kopioita” tai ”klooneja” näistä esineistä., Tai, joskus käyttäjä haluaa kopioita, joita käyttäjä voi muokata muokkaamatta alkuperäistä automaattisesti samanaikaisesti, jotta voimme luoda kopioita esineistä.

kopiota tarvitaan joskus, jotta voi vaihtaa yhtä kopiota vaihtamatta toista. Python, on olemassa kaksi tapaa luoda kopioita :

  • Syvä kopio
  • Matala kopio

jotta nämä kopioida, käytämme copy moduuli. Käytämmecopy – moduulia mataliin ja syviin kopiotoimintoihin.,>

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



yllä olevassa koodissa copy() palaa matala kopio luettelosta ja deepcopy() paluu syvä kopio luettelosta.,

Deep copy

Deep copy on prosessi, jossa kopiointi tapahtuu rekursiivisesti. Se tarkoittaa, että ensimmäinen rakentaa uusi kokoelma esine ja sitten rekursiivisesti asuttavat sen kopioita lapsi esineitä löytyy alkuperäinen. Jos kyseessä on syvä kopio, kopio esineestä kopioidaan toisessa objektissa. Se tarkoittaa, että kaikki objektin kopioon tehdyt muutokset eivät heijasta alkuperäistä objektia. Pythonissa tämä toteutetaan” deepcopy () ” – funktiolla.,



tuloksena on:

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 

yllä olevassa esimerkissä, muutos tehty lista ei vaikutus muut luettelot, mikä osoittaa, lista on syvä kopioida.

Matala kopio

matala kopio tarkoittaa rakentaa uusi kokoelma esine ja sitten asuttavat sen viittaukset lapsi esineitä löytyy alkuperäinen. Kopiointiprosessi ei toistu eikä näin ollen luo kopioita itse lapsen esineistä., Jos kyseessä on matala kopio, viittaus esineeseen kopioidaan toiseen kappaleeseen. Se tarkoittaa, että kaikki objektin kopioon tehdyt muutokset heijastuvat alkuperäiseen objektiin. Pythonissa tämä toteutetaan ”copy ()” – funktion avulla.



tuloksena on:

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

yllä olevassa esimerkissä, muutos tehty lista ei vaikutus muut luettelossa, mikä osoittaa, että luettelo on matala kopioida.,

Tärkeät Kohdat:
difference välillä matala ja syvä kopiointi on merkityksellinen ainoastaan yhdiste esineitä (esineitä, jotka sisältävät muita esineitä, kuten luetteloita tai luokan tapauksissa):

  • matala kopio rakentaa uusi yhdiste objektia ja sitten (siinä määrin kuin mahdollista) lisää viittauksia siihen, että esineitä löytyy alkuperäinen.
  • syväkopio rakentaa uuden yhdisteobjektin ja lisää sen jälkeen rekursiivisesti siihen kopiot alkuperäisestä löydetyistä esineistä.

Huomiota geek!, Vahvista perustuksiasi Python Programming Foundation-kurssilla ja Opi perusasiat.

aluksi haastatteluvalmistelusi parantavat tietorakenteiden konsepteja Python DS-kurssilla.

Article Tags:

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *