Sąrašo Copy() metodas padaro naują seklią sąrašo kopiją.
Pavyzdys
Python3
# Using list fruits> fruits>=> [>'mango'>,>'apple'>,>'strawberry'>]> # creating a copy shakes> shakes>=> fruits.copy()> # printing shakes list> print>(shakes)> |
>
>Išvestis
['mango', 'apple', 'strawberry']>
Kas yra sąrašo kopijavimo () metodas?
Sąrašas Copy() funkcija in Python naudojamas sąrašo kopijai sukurti. Yra du pagrindiniai būdai sukurti sąrašo kopiją Sekli kopija ir Gili kopija. Toliau išsamiai aptarsime sąrašo kopijavimo () metodą.
Funkcija list copy() naudojama sąrašo kopijai sukurti, kuri gali būti naudojama darbui ir neturės įtakos pradinio sąrašo reikšmėms. Tai suteikia laisvę manipuliuoti duomenimis nesijaudinant dėl duomenų praradimo.
Sąrašo kopija() Metodas Sintaksė
list.copy()
Parametrai
- Kopijavimo () metodas nepriima jokių parametrų.
Grąžinimai: Grąžina a sekli kopija sąrašo.
Pastaba : sekli kopija reiškia, kad bet koks naujojo sąrašo pakeitimas neatsispindės pradiniame sąraše.
Kaip sukurti paprastą sąrašo kopiją Python
Kopijuoti ir sukurti naują sąrašą galima naudojant Python funkciją copy().
Python3
# Using List girls> girls>=> [>'Priya'>,>'Neha'>,>'Radha'>,>'Nami'>]> # Creating new copy> girlstudent>=> girls.copy()> #printing new list> print>(girlstudent)> |
>
>Išvestis
['Priya', 'Neha', 'Radha', 'Nami']>
Daugiau Sąrašo kopijavimo() metodo pavyzdžių
Pažiūrėkime kelis sąrašo pavyzdžius kopija () metodas.
1 pavyzdys: paprasta sąrašo kopija
Šiame pavyzdyje mes kuriame sąrašą Python eilutės ir mes naudojame kopija () būdas nukopijuoti sąrašą į kitą kintamąjį.
Python3
lis>=> [>'Geeks'>,>'for'>,>'Geeks'>]> new_list>=> lis.copy()> print>(>'Copied List:'>, new_list)> |
>
>Išvestis
Copied List: ['Geeks', 'for', 'Geeks']>
2 pavyzdys: Sąrašo kopija () veikimo demonstravimas
Čia sukursime a Python sąrašas tada sukurkite negilią kopiją naudodami funkciją copy(). Tada prie nukopijuoto sąrašo pridėsime reikšmę, kad patikrintume, ar sąrašo kopijavimas naudojant copy() metodą turi įtakos pirminiam sąrašui.
Python3
lentynų šunys
# 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))> |
>
>Išvestis
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]>
Pastaba: Sekli kopija reiškia, kad jei modifikuojame bet kurį iš įdėto sąrašo elementų, pakeitimai atsispindi abiejuose sąrašuose, nes nurodo tą pačią nuorodą.
Sekli kopija ir gili kopija
A gili kopija yra sąrašo kopija, kur mes įtraukiame elementą į bet kurį iš sąrašų, tik tas sąrašas yra modifikuojamas.
Į sąrašo kopija () metodu, nukopijuoto sąrašo pakeitimai neatsispindi pirminiame sąraše. Viename sąraše atlikti pakeitimai neatsispindi kituose sąrašuose, išskyrus įdėtuosius elementus (pvz., sąrašą sąraše).
Mes galime naudoti copy.deepcopy() iš kopijavimo modulio, kad išvengtumėte šios problemos.
- Gilaus kopijavimo būdai:
- Naudojant copy.deepcopy()
- Sekliojo kopijavimo būdai:
- Naudojant copy.copy()
- Naudojant list.copy()
- Naudojant pjaustymą
Norėdami geriau suprasti, skaitykite šį straipsnį Gili kopija vs sekli kopija .
Seklios ir gilios kopijos technikos demonstravimas
Čia sukursime sąrašą, o tada sukursime seklią kopiją naudodami priskyrimo operatorius , išvardykite Python kopijavimo modulio metodą copy() ir copy.copy() metodą.
Taip pat sukuriame giliąją kopiją naudodami „deepcopy() Python“. Tada pakeisime pradinį sąrašą ir pamatysime, ar kiti sąrašai yra paveikti, ar ne.
Python3
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)> |
>
>Išvestis
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...>
Nukopijuokite sąrašą naudodami pjaustymą
Čia mes kopijuojame sąrašą naudodami sąrašo pjaustymas metodas [:] ir mes pridedame 'a' į new_list. Išspausdinus matome, kad naujai pridėtas simbolis „a“ nėra pridėtas prie senojo sąrašo.
Python3
list> => [>2>,>4>,>6>]> new_list>=> list>[:]> new_list.append(>'a'>)> print>(>'Old List:'>,>list>)> print>(>'New List:'>, new_list)> |
>
>Išvestis
Old List: [2, 4, 6] New List: [2, 4, 6, 'a']>
Aptarėme sąrašo kopijavimo() metodo apibrėžimą, sintaksę ir pavyzdžius. copy() funkcija yra labai naudinga dirbant su neskelbtinais duomenimis ir negalite rizikuoti suklysti.
Taip pat trumpai kalbėjome apie seklią ir gilią kopiją. Tikimės, kad tai padėjo jums suprasti copy () funkciją Python.
Skaityti Kita Python sąrašo metodai
Daugiau straipsnių sąraše:
- Python | Sąrašo klonavimas arba kopijavimas
- kopija „Python“ (gili kopija ir sekli kopija)
- Python | Kaip nukopijuoti įdėtą sąrašą