>>> list1 = [1,2,3,4,5]
>>> list2 = list1
To get a better understanding, let us see with the help of pictures what happens internally.
>>> list1 = [1,2,3,4,5]
This creates a list object and assigns it to list1
.
>>> list2 = list1
The list object which list1
was referring to is also assigned to list2
.
Now, lets look at the methods to empty an list and what actually happens internally.
METHOD-1: Set to empty list [] :
>>> list1 = []
>>> list2
[1,2,3,4,5]

This does not delete the elements of the list but deletes the reference to the list. So, list1
now points to an empty list but all other references will have access to that old list1
.
This method just creates a new list object and assigns it to list1
. Any other references will remain.
METHOD-2: Delete using slice operator[:] :
>>> del list1[:]
>>> list2
[]

When we use the slice operator to delete all the elements of the list, then all the places where it is referenced, it becomes an empty list. So list2
also becomes an empty list.