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