Copy () -menetelmä palauttaa matalan kopion luettelosta.
Luettelo voidaan kopioida =
operaattorin avulla. Esimerkiksi,
old_list = (1, 2, 3) new_list = vanha_lista
Luetteloiden tällä tavoin kopioinnin ongelma on, että jos muokkaat uutta_luetteloa, myös vanha_luettelo muokataan. Tämä johtuu siitä, että uusi luettelo viittaa tai osoittaa samaan old_list-objektiin.
old_list = (1, 2, 3) new_list = old_list # add an element to list new_list.append('a') print('New List:', new_list) print('Old List:', old_list)
Tuotos
Vanha luettelo: (1, 2, 3, 'a') Uusi luettelo: (1, 2, 3, 'a')
Jos kuitenkin tarvitset alkuperäisen luettelon muuttumattomana, kun uutta luetteloa muokataan, voit käyttää copy()
menetelmää.
Aiheeseen liittyvä opetusohjelma: Python Shallow Copy Vs Deep Copy
Menetelmän syntaksi copy()
on:
new_list = list.copy ()
copy () -parametrit
copy()
Menetelmä ei ota parametreja.
Palautusarvo kopiosta ()
copy()
Menetelmä palauttaa uuden listan. Se ei muuta alkuperäistä luetteloa.
Esimerkki 1: Luettelon kopiointi
# mixed list my_list = ('cat', 0, 6.7) # copying a list new_list = my_list.copy() print('Copied List:', new_list)
Tuotos
Kopioitu luettelo: ('kissa', 0, 6.7)
Jos muokkaat uutta_listaa yllä olevassa esimerkissä, my_list-luetteloa ei muuteta.
Esimerkki 2: Kopioi luettelo viipalointisyntaksilla
# shallow copy using the slicing syntax # mixed list list = ('cat', 0, 6.7) # copying a list using slicing new_list = list(:) # Adding an element to the new list new_list.append('dog') # Printing new and old list print('Old List:', list) print('New List:', new_list)
Tuotos
Vanha luettelo: ('kissa', 0, 6.7) Uusi luettelo: ('kissa', 0, 6.7, 'koira')