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:
- Python | Klonovanie alebo kopírovanie zoznamu
- kopírovať v Pythone (Deep Copy a Shallow Copy)
- Python | Ako skopírovať vnorený zoznam