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:
- Python | Klonování nebo kopírování seznamu
- kopírování v Pythonu (Deep Copy a Shallow Copy)
- Python | Jak zkopírovat vnořený seznam