Python 深浅Copy
l1 = [1,2,3]
l2 = li #相当于标签 为同一地址而已
l1.append(4)
print(l1) #l1=[1,2,3,4]
print(l2) #l2=[1,2,3,4]
#浅拷贝 只copy外壳 内部为原地址
l1 = [1,2,3]
l2 = l1.copy()
l1.append(666)
#l1 = [1,2,3,666]
#l2 = [1,2,3]
#浅拷贝 只copy外壳 内部为原地址
l1 = [1,2,3,[22,33]]
l2 = l1.copy()
l1[-1].append(6)
#l1 = [1,2,3,[22,33,6]]
#l2 = [1,2,3,[22,33,6]]
深copy
python 对deepcopy进行了优化,不可变的数据类型(int,str...) 仍然沿用同一个内存
import copy
l1 = [1,2,3,[22,33]]
l2 = copy.deepcopy(l1)
li[-1].append(666)
#l1 = [1,2,3,[22,33,666]]
#l2 = [1,2,3,[22,33]]
相关面试题
l1 = [1,2,3,[22,33]]
l2 = l1[:] #切片为浅copy
l1[-1].append(666)
#l1 = [1,2,3,[22,33,666]]
#l2 = [1,2,3,[22,33,666]]
浅copy:嵌套的可变的数据类型是同一个
深copy:嵌套的可变的数据类型不是同一个