Python List copy() metode
Listen Copy() metoden laver en ny overfladisk kopi af en liste.
Eksempel
Python3
# Using list fruits> fruits> => [> 'mango'> ,> 'apple'> ,> 'strawberry'> ]> # creating a copy shakes> shakes> => fruits.copy()> # printing shakes list> print> (shakes)> |
Produktion
['mango', 'apple', 'strawberry']
Hvad er List Copy()-metoden?
Listen Copy() funktion i Python bruges til at oprette en kopi af en liste. Der er to hovedmåder at oprette en kopi af listen Overfladisk kopi og Dyb kopi. Vi vil diskutere list copy() metoden i detaljer nedenfor.
List copy()-funktionen bruges til at oprette en kopi af en liste, som kan bruges til at fungere, og den vil ikke påvirke værdierne i den originale liste. Dette giver frihed til at manipulere data uden at bekymre dig om tab af data.
List copy() Metodesyntaks
list.copy()
Parametre
- Copy()-metoden tager ingen parametre.
Vender tilbage: Returnerer en flad kopi af en liste.
Bemærk : En overfladisk kopi betyder, at enhver ændring i den nye liste ikke vil blive afspejlet i den originale liste.
Sådan opretter du en simpel kopi af en liste i Python
Kopiering og oprettelse af en ny liste kan gøres ved hjælp af copy()-funktionen i Python.
Python3
# Using List girls> girls> => [> 'Priya'> ,> 'Neha'> ,> 'Radha'> ,> 'Nami'> ]> # Creating new copy> girlstudent> => girls.copy()> #printing new list> print> (girlstudent)> |
Produktion
['Priya', 'Neha', 'Radha', 'Nami']
Flere eksempler på List copy()-metoden
Lad os se et par eksempler på listen kopi() metode.
Eksempel 1: Enkel listekopi
I dette eksempel opretter vi en liste over Python strenge og vi bruger kopi() metode til at kopiere listen til en anden variabel.
Python3
lis> => [> 'Geeks'> ,> 'for'> ,> 'Geeks'> ]> new_list> => lis.copy()> print> (> 'Copied List:'> , new_list)> |
Produktion
Copied List: ['Geeks', 'for', 'Geeks']
Eksempel 2: Demonstrer virkemåden af List copy()
Her vil vi skabe en Python liste og opret derefter en overfladisk kopi ved hjælp af copy()-funktionen. Derefter tilføjer vi en værdi til den kopierede liste for at kontrollere, om kopiering af en liste ved hjælp af metoden copy() påvirker den originale liste.
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))> |
Produktion
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]
Bemærk: En overfladisk kopi betyder, at hvis vi ændrer nogen af de indlejrede listeelementer, afspejles ændringer i begge lister, da de peger på den samme reference.
Shallow Copy og Deep Copy
EN dyb kopi er en kopi af en liste, hvor vi tilføjer et element i en hvilken som helst af listerne, kun den liste er ændret.
I liste kopi() metode, afspejles ændringer foretaget på den kopierede liste ikke i den originale liste. Ændringerne på en liste afspejles ikke på andre lister undtagen i indlejrede elementer (som en liste i en liste).
Vi kan bruge copy.deepcopy() fra kopimodulet for at undgå dette problem.
- Teknikker til dyb kopiering:
- Brug af copy.deepcopy()
- Teknikker til overfladisk kopiering:
- Brug af copy.copy()
- Brug af list.copy()
- Ved hjælp af udskæring
For at få en dybere forståelse, se denne artikel om Deep Copy vs Shallow Copy .
Demonstrer teknikker til lav og dyb kopi
Her vil vi oprette en liste og derefter oprette en lavvandet kopi ved hjælp af opgaveoperatør , liste copy()-metoden og copy.copy()-metoden for Python-kopimodulet.
Vi opretter også en dyb kopi ved hjælp af deepcopy() i Python. Så vil vi lave ændringer i den oprindelige liste og se, om de andre lister er berørt eller ej.
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)> |
Produktion
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...
Kopier liste ved hjælp af udskæring
Her kopierer vi listen ved hjælp af liste udskæring metode [:], og vi tilføjer 'en' til den nye_liste. Efter udskrivning kan vi se, at det nyligt tilføjede tegn 'a' ikke er tilføjet til den gamle liste.
Python3
list> => [> 2> ,> 4> ,> 6> ]> new_list> => list> [:]> new_list.append(> 'a'> )> print> (> 'Old List:'> ,> list> )> print> (> 'New List:'> , new_list)> |
Produktion
Old List: [2, 4, 6] New List: [2, 4, 6, 'a']
Vi diskuterede definitionen, syntaksen og eksemplerne på list copy()-metoden. copy()-funktionen er meget nyttig, når du arbejder med følsomme data, og du kan ikke risikere fejl.
Vi talte også kort om overfladisk vs dyb kopi. Håber dette hjalp dig med at forstå copy()-funktionen i Python.
Læs Andet Python liste metoder
Flere artikler om til listekopi:
- Python | Kloning eller kopiering af en liste
- kopi i Python (Deep Copy og Shallow Copy)
- Python | Sådan kopierer du en indlejret liste