logo

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




typ dátumu strojopisu
# 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: