>>> old = [1,2,3,4,5]
>>> new = old
>>> new1 = old
>>> old, new, new1
([1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
>>> id(old), id(new),id(new1)
(2452070277632, 2452070277632, 2452070277632)
此时old new new1 id值相同,表示他们共同代表/指向 相同的内存地址
>>> new = [6]
>>> old, new, new1
([1, 2, 3, 4, 5], [6], [1, 2, 3, 4, 5])
>>> id(old), id(new),id(new1)
(2452070277632, 2452070033920, 2452070277632)
此时只有new id值改变,表示对new的赋值操作会重新指定内存地址
>>> new1[0] = [6]
>>> old, new, new1
([[6], 2, 3, 4, 5], [6], [[6], 2, 3, 4, 5])
>>> id(old), id(new),id(new1)
(2452070277632, 2452070033920, 2452070277632)
此时old 和 new1 的值同时发生改变,而new值不变,
三个列表的id值均不变
表示修改new1的值实际上是修改old和new1共同指向的内存地址的值 |