>>> list1 = [1,2,3,4,5]
>>> list2 = list1
Aby lepiej zrozumieć, przyjrzyjmy się za pomocą obrazów, co dzieje się wewnątrz.
>>> list1 = [1,2,3,4,5]
ten tworzy obiekt listy i przypisuje go do list1
.
>>> list2 = list1
listy obiektów, które list1
odnosił się również przypisane do list2
.
Teraz przyjrzyjmy się metodom opróżniania listy i temu, co dzieje się wewnętrznie.
METODA 1: Zestaw do pustej listy []:
>>> list1 = []
>>> list2
[1,2,3,4,5]
nie usuwać elementy z listy, ale usuwa odniesienia do listy. Tak więc list1
wskazuje teraz na pustą listę, ale wszystkie inne odniesienia będą miały dostęp do tego starego list1
. Ta metoda tworzy nowy obiekt listy i przypisuje go do list1
. Wszelkie inne referencje pozostaną.
Metoda 2: Usuń z użyciem operatora plaster [:]:
>>> del list1[:]
>>> list2
[]
Kiedy używamy operatora plasterek, aby usunąć wszystkie elementy z listy, a następnie wszystkich miejsc, gdzie jest odwołany, staje się pustą listą. Tak więc list2
również staje się pustą listą.
Podobnie jak wyjaśnienie, 'del' w python jest w rzeczywistości _statement_, a nie _function_. – mintchkin
W Pythonie 3 * proszę * użyć 'a.clear()'. Dokumenty mówią, że jest to równoważne "del a [:]" i * drodze * bardziej czytelnej. –
I oczywiście istnieje również "a [:] = []", które mniej więcej tak samo jak "del a [:]" – driax