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)

 

posted @ 2022-08-02 21:37  ilspring  阅读(196)  评论(0)    收藏  举报