Metóda copy() zoznamu v Pythone

Metóda zoznamu Copy(). vytvorí novú plytkú kópiu zoznamu.

Príklad

Python3




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

Výkon

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

Čo je metóda List Copy()?

Zoznam Funkcia Copy(). v Python sa používa na vytvorenie kópie zoznamu. Existujú dva hlavné spôsoby vytvorenia kópie zoznamu Plytká kópia a Hlboká kópia. O metóde list copy() budeme podrobne diskutovať nižšie.

Funkcia list copy() sa používa na vytvorenie kópie zoznamu, ktorú je možné použiť na prácu a neovplyvní hodnoty v pôvodnom zozname. To dáva slobodu manipulovať s údajmi bez obáv zo straty údajov.

Syntax metódy List copy().

list.copy()

Parametre

  • Metóda copy() neberie žiadne parametre.

Vrátenie: Návraty a plytká kópia zo zoznamu.

Poznámka : Plytká kópia znamená, že akákoľvek úprava v novom zozname sa neprejaví v pôvodnom zozname.

Ako vytvoriť jednoduchú kópiu zoznamu v Pythone

Kopírovanie a vytváranie nového zoznamu je možné vykonať pomocou funkcie copy() v Pythone.

Python3




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

Výkon

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

Ďalšie príklady metódy List copy().

Pozrime sa na niekoľko príkladov zo zoznamu kopírovať () metóda.

Príklad 1: Jednoduché kopírovanie zoznamu

V tomto príklade vytvárame zoznam Python reťazce a používame kopírovať () metóda na skopírovanie zoznamu do inej premennej.

Python3




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

Výkon

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

Príklad 2: Ukážka fungovania funkcie List copy()

Tu vytvoríme a Zoznam Python a potom vytvorte plytkú kópiu pomocou funkcie copy(). Potom do skopírovaného zoznamu pripojíme hodnotu, aby sme skontrolovali, či kopírovanie zoznamu pomocou metódy copy() ovplyvní pôvodný zoznam.

Python3




# 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))>

Výkon

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] 

Poznámka: Plytká kópia znamená, že ak upravíme niektorý z prvkov vnoreného zoznamu, zmeny sa prejavia v oboch zoznamoch, pretože ukazujú na rovnaký odkaz.

Shallow Copy a Deep Copy

A hlboká kópia je kópia zoznamu, kde do ktoréhokoľvek zo zoznamov pridáme prvok, upraví sa iba tento zoznam.

In kópia zoznamu() spôsobe, zmeny vykonané v skopírovanom zozname sa neprejavia v pôvodnom zozname. Zmeny vykonané v jednom zozname sa neprejavia v iných zoznamoch okrem vnorených prvkov (ako je zoznam v zozname).

Môžeme použiť copy.deepcopy() z kopírovacieho modulu, aby ste sa vyhli tomuto problému.

  • Techniky hlbokého kopírovania:
    • Použitie copy.deepcopy()
  • Techniky plytkého kopírovania:
    • Použitie copy.copy()
    • Pomocou list.copy()
    • Pomocou krájania

Ak chcete získať hlbšie pochopenie, prečítajte si tento článok Deep Copy vs Shallow Copy .

Ukážka techník plytkej a hlbokej kópie

Tu vytvoríme zoznam a potom vytvoríme plytkú kópiu pomocou operátor priradenia , vypíšte metódu copy() a metódu copy.copy() modulu kopírovania Pythonu.

Hlbokú kópiu vytvoríme aj pomocou deepcopy() v Pythone. Potom vykonáme zmeny v pôvodnom zozname a uvidíme, či sú ovplyvnené ostatné zoznamy alebo nie.

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)>

Výkon

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... 

Kopírovať zoznam pomocou krájania

Tu kopírujeme zoznam pomocou krájanie zoznamu metóda [:] a pripájame „a“ do nového_zoznamu. Po vytlačení vidíme, že novo pridaný znak „a“ nie je pridaný do starého zoznamu.

Python3




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

Výkon

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

Diskutovali sme o definícii, syntaxi a príkladoch metódy list copy(). funkcia copy() je veľmi užitočná pri práci s citlivými údajmi a nemôžete riskovať chyby.

Krátko sme hovorili aj o plytkom vs. hlbokom kopírovaní. Dúfam, že vám to pomohlo pochopiť funkciu copy() v Pythone.

Prečítajte si Iné Metódy zoznamu Python

Ďalšie články na kopírovanie zoznamu: