a=[1,2,3]
b=a #b是a的一个引用
b=a[:] #b是a中所有元素的一个拷贝
做出如下操作
情况1:使用b=a引用
a=[1,2,3]
b=a
a[0]='qq'
print(a)
print(b) #由于b是a的引用,对于a的修改也是对b的修改,a和b结果相同
del a
print(a)
print(b) #a对象被删除,而b对象仍然不变
主要是因为:
del a 删除列表对象的引用(删除的仅仅是引用计数,直到引用计数=0时,才不存在)
del a[:] 删除列表对象中的所有元素
情况2:使用b=a[:]拷贝
a=[1,2,3]
b=a[:]
a[0]='qq'
print(a)
print(b) # b=[1,2,3] a= ['qq',2,3]
#这是因为b仅仅是a中元素的拷贝,除了元素相同之外,没有任何关系,对于a的任何操作不影响b
del a
print(a)
print(b) #a对象被删除,而b对象仍然不变