“==”和“is”的区别:"=="只要值相等即可 "is"必须指向同一个东西
a=[11 22 33]
b=[11 22 33]
c=a
a==b #return True
a is b #return False
a==c #return True
a is c #return False
深拷贝和浅拷贝:浅拷贝只拷贝地址(指向相同),深拷贝完全复制
a=[11 22 33]
#浅拷贝
import copy
b=a #a,b指向同一个地址
e=copy.copy(a)
a.append(44) #b=[11 22 33 44]
e=[11 22 33 44] #a,e不同地址
#深拷贝
import copy
c=[11 22 33]
d=copy.deepcopy(c) #d只复制了c的内容
c.append(44)
d=[11 22 33]
扩展:深拷贝内容为地址(列表)的列表 #递归到底
import copy
a=[11 22 33]
b=[44 55 66]
c=[a b]
d=copy.deepcopy(c)
a.append(44)
#d[0]=[11 22 33] c内的子数组完全被复制,而不是将地址作为元素传递给d
copy和deepcopy区别
copy能够自动判断类型
copy复制时只能是别第一层引用[可变类型]
copy只复制地址(浅拷贝)[不可变类型]