Jak klonować lub kopiować listę?

Jakie są opcje klonowania lub kopiowania listy w Pythonie? Podczas używania new_list = my_list, wszelkie modyfikacje new_list zmieniają my_list za każdym razem. Dlaczego tak się dzieje?

1 odpowiedź

Z new_list = my_list nie masz w rzeczywistości dwóch list. Przypisanie po prostu kopiuje odniesienie do listy, a nie rzeczywistą listę, więc zarówno nowa_lista, jak i moja_lista odwołują się do tej samej listy po przypisaniu.

Aby faktycznie skopiować listę, masz różne możliwości:

-Możesz użyć wbudowanej metody list.copy() (dostępnej od wersji Python 3.3):

new_list = old_list.copy()

-Możesz użyć wbudowanej funkcji list():

new_list = list(old_list)

-Możesz użyć generycznego copy.copy()

import copy
new_list = copy.copy(old_list)

-Jeśli lista zawiera obiekty i chcesz je również skopiować, użyj generycznego copy.deepcopy():

import copy
new_list = copy.deepcopy(old_list)

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.