GeeksforGeeks (Magyar)

Pythonban a hozzárendelési utasítások nem másolnak objektumokat, hanem kötéseket hoznak létre egy cél és egy objektum között. Amikor használjuk = operátor felhasználó úgy gondolja, hogy ez létrehoz egy új objektumot; nos, ez nem. csak létrehoz egy új változó, amely osztja a referencia az eredeti objektumot. Előfordul, hogy a felhasználó akar dolgozni változó objektumok, annak érdekében, hogy ezt a felhasználó keresi a módját, hogy hozzon létre “valódi másolatok” vagy “klónok” ezeket az objektumokat., Vagy néha a Felhasználó olyan másolatokat szeretne, amelyeket a felhasználó módosíthatja anélkül, hogy automatikusan módosítaná az eredeti példányt, annak érdekében, hogy objektumokat másoljunk.

néha szükség van egy másolatra, így az egyik példány megváltoztatható a másik megváltoztatása nélkül. A Python-ban kétféle módon lehet másolatot készíteni:

  • Deep copy
  • sekély másolat

a másolat készítéséhez a copy modult használjuk. Acopy modult használjuk sekély és mély másolási műveletekhez.,>

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



a fenti kódot, hogy a copy() visszatér a sekély másolatot a listáról, majd a deepcopy() vissza egy mély példányát lista.,

Deep copy

Deep copy egy olyan folyamat, amelyben a másolási folyamat rekurzív módon történik. Ez azt jelenti, hogy először egy új gyűjteményobjektumot építünk, majd rekurzív módon feltöltjük az eredetiben található gyermekobjektumok másolataival. Mély másolat esetén az objektum egy példányát más objektumba másolja. Ez azt jelenti, hogy az objektum egy példányán végrehajtott módosítások nem tükröződnek az eredeti objektumban. A python-ban ezt a “deepcopy()” funkcióval hajtják végre.,



kimenet:

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 

más listákban a lista megjelölése mély másolás.

sekély másolat

egy sekély példány egy új gyűjteményobjektum felépítését jelenti,majd az eredetiben található gyermekobjektumokra való hivatkozásokkal. A másolási folyamat nem tér vissza, ezért nem készít másolatot a gyermek tárgyairól., Sekély másolat esetén az objektum hivatkozását más objektumba másolják. Ez azt jelenti, hogy az objektum egy példányán végrehajtott módosítások tükrözik az eredeti objektumot. A python-ban ezt a “másolás()” funkcióval hajtják végre.



kimenet:

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

a fenti példában a listában végrehajtott változás más listában is érvényesült, jelezve, hogy a lista sekély másolt.,

fontos pontok:
a sekély és mély másolás közötti különbség csak összetett objektumokra vonatkozik (más objektumokat, például listákat vagy osztálypéldányokat tartalmazó objektumok):

  • egy sekély másolat új összetett objektumot épít ki, majd (a lehető legnagyobb mértékben) beilleszti a hivatkozásokat az eredetiben található objektumokra.
  • egy mély másolat új összetett objektumot alkot, majd rekurzív módon beilleszti az eredetiben található objektumok másolatait.

figyelem!, Erősítse meg alapjait a Python Programming Foundation kurzussal, majd Ismerje meg az alapokat.

először is, az interjú előkészületei javítják az adatstruktúrák koncepcióit a Python DS tanfolyammal.

cikk címkék:

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük