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:
- Python | Luettelon kloonaus tai kopioiminen
- kopio Pythonissa (Deep Copy ja Shallow Copy)
- Python | Sisäkkäisen luettelon kopioiminen