Python List copy() -menetelmä

Luettelo Copy()-menetelmä tekee luettelosta uuden matalan kopion.

Esimerkki

Python 3




# Using list fruits> fruits> => [> 'mango'> ,> 'apple'> ,> 'strawberry'> ]> # creating a copy shakes> shakes> => fruits.copy()> # printing shakes list> print> (shakes)>

Lähtö

['mango', 'apple', 'strawberry'] 

Mikä on List Copy() -menetelmä?

Lista Copy()-funktio sisään Python käytetään luettelon kopion luomiseen. On kaksi päätapaa luoda kopio luettelosta Matala kopio ja Syvä kopio. Käsittelemme lista copy() -menetelmää yksityiskohtaisesti alla.

List copy()-funktiolla luodaan luettelosta kopio, jota voidaan käyttää toimimaan eikä se vaikuta alkuperäisen listan arvoihin. Tämä antaa vapauden käsitellä tietoja huolehtimatta tietojen katoamisesta.

List copy() -menetelmän syntaksi

list.copy()

Parametrit

  • Copy()-menetelmä ei ota mitään parametreja.

Palautukset: Palauttaa a matala kopio luettelosta.

Huomautus : Matala kopio tarkoittaa, että uudessa luettelossa tehdyt muutokset eivät näy alkuperäisessä luettelossa.

Kuinka luoda yksinkertainen kopio luettelosta Pythonissa

Kopiointi ja uuden listan luominen voidaan tehdä Pythonissa copy()-funktiolla.

Python 3




# Using List girls> girls> => [> 'Priya'> ,> 'Neha'> ,> 'Radha'> ,> 'Nami'> ]> # Creating new copy> girlstudent> => girls.copy()> #printing new list> print> (girlstudent)>

Lähtö

['Priya', 'Neha', 'Radha', 'Nami'] 

Lisää esimerkkejä List copy() -menetelmästä

Katsotaanpa muutamia esimerkkejä luettelosta kopio() menetelmä.

Esimerkki 1: Yksinkertainen luettelokopio

Tässä esimerkissä luomme luettelon Python-merkkijonot ja käytämme kopio() tapa kopioida luettelo toiseen muuttujaan.

Python 3




lis> => [> 'Geeks'> ,> 'for'> ,> 'Geeks'> ]> new_list> => lis.copy()> print> (> 'Copied List:'> , new_list)>

Lähtö

Copied List: ['Geeks', 'for', 'Geeks'] 

Esimerkki 2: List copy():n toiminnan osoittaminen

Täällä luomme a Python lista ja luo sitten matala kopio käyttämällä copy()-funktiota. Tämän jälkeen lisäämme kopioituun luetteloon arvon tarkistaaksemme, vaikuttaako luettelon kopioiminen copy()-menetelmällä alkuperäiseen luetteloon.

Python 3




# Initializing list> lis1> => [> 1> ,> 2> ,> 3> ,> 4> ]> # Using copy() to create a shallow copy> lis2> => lis1.copy()> # Printing new list> print> (> 'The new list created is : '> +> str> (lis2))> # Adding new element to new list> lis2.append(> 5> )> # Printing lists after adding new element> # No change in old list> print> ('The new> list> after adding new element :> '> +> str> (lis2))> print> ('The old> list> after adding new element to new> list> :> '> +> str> (lis1))>

Lähtö

The new list created is : [1, 2, 3, 4] The new list after adding new element : [1, 2, 3, 4, 5] The old list after adding new element to new list : [1, 2, 3, 4] 

Huomautus: Matala kopio tarkoittaa, että jos muutamme jotakin sisäkkäisistä luetteloelementeistä, muutokset näkyvät molemmissa luetteloissa, koska ne osoittavat samaan viittaukseen.

Shallow Copy ja Deep Copy

A syvä kopio on kopio luettelosta, johon lisäämme elementin mihin tahansa luetteloon, vain sitä listaa muokataan.

Sisään lista kopio() -menetelmällä kopioituun luetteloon tehdyt muutokset eivät näy alkuperäisessä luettelossa. Yhteen luetteloon tehdyt muutokset eivät näy muissa luetteloissa paitsi sisäkkäisissä elementeissä (kuten luettelon sisällä).

Voimme käyttää copy.deepcopy() kopiointimoduulista tämän ongelman välttämiseksi.

  • Syväkopiointitekniikat:
    • Käytä copy.deepcopy()
  • Matalakopiointitekniikat:
    • Käytä copy.copy()
    • List.copy()
    • Viipalointia käyttämällä

Saadaksesi syvemmän ymmärryksen, katso tämä artikkeli aiheesta Deep Copy vs Shallow Copy .

Matalan ja syvän kopion tekniikoiden esittely

Täällä luomme luettelon ja luomme sitten matalan kopion käyttämällä toimeksiantooperaattori , listaa Python-kopiomoduulin copy()- ja copy.copy()-metodi.

Luomme myös syväkopion käyttämällä deepcopy()-komentoa Pythonissa. Sitten teemme muutoksia alkuperäiseen luetteloon ja katsomme, vaikuttavatko muut luettelot vai eivät.

Python 3




import> copy> # Initializing list> list1> => [> 1> , [> 2> ,> 3> ] ,> 4> ]> print> (> 'list 1 before modification: '> , list1)> # all changes are reflected> list2> => list1> # shallow copy - changes to> # nested list is reflected,> # same as copy.copy(), slicing> list3> => list1.copy()> # deep copy - no change is reflected> list4> => copy.deepcopy(list1)> list1.append(> 5> )> list1[> 1> ][> 1> ]> => 999> print> (> 'list 1 after modification: '> , list1)> print> (> 'list 2 after modification: '> , list2)> print> (> 'list 3 after modification: '> , list3)> print> (> 'list 4 after modification: '> , list4)>

Lähtö

list 1 before modification: [1, [2, 3], 4] list 1 after modification: [1, [2, 999], 4, 5] list 2 after modification: [1, [2, 999], 4, 5] list 3 after modification: [1, [2, 999], 4] list 4 after mo... 

Kopioi luettelo käyttämällä viipalointia

Tässä kopioimme luettelon käyttämällä listan viipalointi menetelmä [:] ja liitämme 'a' uuteen_listaan. Tulostamisen jälkeen voimme nähdä, että äskettäin lisättyä merkkiä 'a' ei ole lisätty vanhaan luetteloon.

Python 3




list> => [> 2> ,> 4> ,> 6> ]> new_list> => list> [:]> new_list.append(> 'a'> )> print> (> 'Old List:'> ,> list> )> print> (> 'New List:'> , new_list)>

Lähtö

Old List: [2, 4, 6] New List: [2, 4, 6, 'a'] 

Käsittelimme lista copy()-menetelmän määritelmää, syntaksia ja esimerkkejä. copy()-toiminto on erittäin hyödyllinen, kun työskentelet arkaluontoisten tietojen kanssa, etkä voi vaarantaa virheitä.

Puhuimme myös lyhyesti matalasta vs syvästä kopiosta. Toivottavasti tämä auttoi sinua ymmärtämään copy()-funktion Pythonissa.

Lue Muut Python-luettelomenetelmät

Lisää artikkeleita luetteloon: