指派
指派:就是給對象起一個别名
info = [1,2,3,4,5]
b = a #a 與b 指向的是同一個對象,當改變b的值時會對a産生影響,當改變a的值時也會對b産生影響
淺拷貝
淺拷貝使用函數:copy 顧名思義就是拷貝的不夠徹底,淺嘗辄止
會拷貝出一個父清單的新位址對象。對于父清單,不是同一個對象,裡面的子清單指向的還是是同一對象
import copy
alist = [10,20,30,[100,200]]
blist = copy.copy(alist)
blist.append(8)
blist[3].append(300)#兩個都會修改
print('alist--->',alist)
print('blist--->',blist)
輸出:
alist---> [10, 20, 30, [100, 200, 300]]
blist---> [10, 20, 30, [100, 200, 300], 8]
深拷貝
深拷貝:deepcopy 顧名思義就是拷貝徹底了,會拷貝出一個外層清單的新位址的對象,子清單也是獨立的,不是同一個對象
import copy
alist = [10,20,30,[100,200]]
blist = copy.deepcopy(alist)
blist.append(40)
blist[-2].append(300)
print('alist--->',alist)
print('blist--->',blist)
輸出
alist---> [10, 20, 30, [100, 200]]
blist---> [10, 20, 30, [100, 200, 300], 40]
總結
深淺拷貝和直接指派:總結就是是否獨立出新的對象
直接指派:不會獨立出新的對象
淺拷貝:獨立的不完全,隻是獨立出父清單,子清單不獨立
深拷貝:完全獨立,父清單和子清單都是獨立的