作为新手,在项目中遇到了陌生的copy.copy方法,在此整理下,让python初学者明白其作用,避免踩坑
# 浅复制只复制没有嵌套的对象,而对嵌套的对象只是进行了引用 # (当源对象中的嵌套对象内容改变时,目标对象也会跟着改变) a = [1,2,3,4,5,[3,6,[33,22],7,8]] c = copy.copy(a) # 深复制包括里面的嵌套对象,以及嵌套对象里面的嵌套对象 d = copy.deepcopy(a) print("-----------浅复制,深复制前-------------") print(c) print(d) a[1]=33 a[5][0] = 123 a[5][2][1] = 555 print("-----------修改初始对象后---------------") print(a) print(c) print(d)
运行结果如下:
-----------浅复制,深复制前-------------
[1, 2, 3, 4, 5, [3, 6, [33, 22], 7, 8]]
[1, 2, 3, 4, 5, [3, 6, [33, 22], 7, 8]]
-----------修改初始对象后---------------
[1, 33, 3, 4, 5, [123, 6, [33, 555], 7, 8]]
[1, 2, 3, 4, 5, [123, 6, [33, 555], 7, 8]]
[1, 2, 3, 4, 5, [3, 6, [33, 22], 7, 8]]