python之深浅拷贝
1、浅拷贝,影响到了原数据
当列表里的元素是个列表时,拷贝了一个新列表,再修改新列表里的列表元素,会把原列表的元素也修改了
s = [[1, 2], 'tom', 'sasa'] s1=[1,'tom','sasa'] s1[0]=2 print(s1) # 将s的内容复制到s2、浅拷贝copy # 浅拷贝=只拷贝第一层 s2 = s.copy() print(s2) s2[0] = 3 print(s2, s) s3 = s.copy() # s3=s[:]与copy的效果一致,都是浅拷贝 s3[1] = 'wawa' print(s3, s) s3[0][1] = 3 # copy后修改列表里的元素,影响到了原数据 print(s3, s)
原来的s----》[[1, 2], 'tom', 'sasa']
copy后的s--》[[1, 3], 'tom', 'sasa']
2、深拷贝,不影响原数据
# 深拷贝=克隆一份 import copy hb = ['xn', 123, [15000, 9000]] # xs=copy.copy() #shallow copy浅拷贝 xs = copy.deepcopy(hb) # 深拷贝 xs[0] = 'jn' xs[1] = 'lala' xs[2][1] -= 1999 #减 hb[2][1] -= 3000 print(hb, xs)