проверьте отличное объяснение Неда Батчеледера - Факты и мифы об именах и значениях Python
Короче говоря, первоначально list1 и list2 относятся к одному и тому же объекту.списки изменчивы, поэтому при добавлении к объекту это все тот же объект, на который ссылаются два разных имени.После назначения пустого списка для list1, он ссылается на другой объект, в то время как list2 по-прежнему ссылается на оригинальный список
>>> list1 = [1, 2, 3]
>>> list2 = list1
>>> id(list1)
140533230706312
>>> id(list2)
140533230706312
>>> list1.append(4)
>>> list1
[1, 2, 3, 4]
>>> list2
[1, 2, 3, 4]
>>> id(list1)
140533230706312
>>> id(list2)
140533230706312
>>> list1 = []
>>> id(list1)
140533231045704
>>> id(list2)
140533230706312
>>> list2
[1, 2, 3, 4]