logo

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




unix-yläkomento
# 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: