logo

Metoda copy() seznamu v Pythonu

Metoda seznamu Copy(). vytvoří novou mělkou kopii seznamu.

Příklad

Python3






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

>

>

Výstup

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

Co je metoda List Copy()?

Seznam Funkce Copy(). v Krajta se používá k vytvoření kopie seznamu. Existují dva hlavní způsoby, jak vytvořit kopii seznamu Mělká kopie a Hluboká kopie. Metodu list copy() podrobně probereme níže.

Funkce list copy() se používá k vytvoření kopie seznamu, kterou lze použít k práci a neovlivní hodnoty v původním seznamu. To dává svobodu manipulovat s daty bez obav ze ztráty dat.

Syntaxe metody List copy()

list.copy()

Parametry

  • Metoda copy() nepřebírá žádné parametry.

Vrácení: Vrací a mělká kopie seznamu.

Poznámka : Mělká kopie znamená, že jakákoli úprava v novém seznamu se neprojeví v původním seznamu.

Jak vytvořit jednoduchou kopii seznamu v Pythonu

Kopírování a vytváření nového seznamu lze provést pomocí funkce copy() v Pythonu.

Python3




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

>

>

Výstup

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

Další příklady metody List copy()

Podívejme se na několik příkladů seznamu kopírovat() metoda.

Příklad 1: Simple List Copy

V tomto příkladu vytváříme seznam Python řetězce a my používáme kopírovat() metoda pro zkopírování seznamu do jiné proměnné.

Python3




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

>

>

Výstup

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

Příklad 2: Ukázka fungování funkce List copy()

Zde vytvoříme a Seznam Pythonu a poté vytvořte mělkou kopii pomocí funkce copy(). Poté ke zkopírovanému seznamu připojíme hodnotu, abychom zkontrolovali, zda kopírování seznamu pomocí metody copy() ovlivní původní seznam.

Python3




typ data na stroji
# 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ýstup

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: Mělká kopie znamená, že pokud upravíme některý z prvků vnořeného seznamu, změny se projeví v obou seznamech, protože ukazují na stejný odkaz.

Mělká kopie a hluboká kopie

A hluboká kopie je kopie seznamu, kde přidáme prvek do libovolného seznamu, pouze tento seznam je upraven.

v kopie seznamu() změny provedené v zkopírovaném seznamu se neprojeví v původním seznamu. Změny provedené v jednom seznamu se neprojeví v ostatních seznamech kromě vnořených prvků (jako je seznam v seznamu).

Můžeme použít copy.deepcopy() z kopírovacího modulu, abyste se tomuto problému vyhnuli.

  • Techniky hlubokého kopírování:
    • Použití funkce copy.deepcopy()
  • Techniky pro mělkou kopii:
    • Použití copy.copy()
    • Pomocí list.copy()
    • Použití krájení

Chcete-li získat hlubší porozumění, přečtěte si tento článek o Deep Copy vs Shallow Copy .

Ukázka technik mělké a hluboké kopie

Zde vytvoříme seznam a poté vytvoříme mělkou kopii pomocí operátor přiřazení , metodu list copy() a metodu copy.copy() kopírovacího modulu Pythonu.

Také vytváříme hlubokou kopii pomocí deepcopy() v Pythonu. Poté provedeme změny v původním seznamu a uvidíme, zda jsou ostatní seznamy ovlivněny nebo 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)>

>

>

Výstup

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írovat seznam pomocí krájení

Zde zkopírujeme seznam pomocí krájení seznamu metoda [:] a připojujeme 'A' do nového_seznamu. Po vytištění vidíme, že nově přidaný znak ‚a‘ není připojen ke starému seznamu.

Python3




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

>

>

Výstup

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

Probrali jsme definici, syntaxi a příklady metody list copy(). funkce copy() je velmi užitečná při práci s citlivými daty a nemůžete riskovat chyby.

Krátce jsme také hovořili o mělké vs. hluboké kopii. Doufám, že vám to pomohlo v pochopení funkce copy() v Pythonu.

Přečtěte si další Metody seznamu v Pythonu

Další články ke kopírování seznamu: