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: