深拷贝、浅拷贝
如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短。
如果B没变,那就是深拷贝,自食其力。不仅A会影响B,B也会影响A,即互相影响
import copy a = [1,2,['x','y']] b = a #全影响 c = copy.copy(a) #浅拷贝,第一层不影响,第二层有影响 d = copy.deepcopy(a) #深拷贝,互不影响 a.append(3) a[2].append('z') a.append(['x','y']) print('a1=',a) print('b1=',b) print('c1=',c) print('d1=',d) b.append(4) b[2].append('b') print('b4=',b) print('a4=',a) c.append(5) c[2].append('c') print('c5=',c) print('a5=',a) d.append(6) d[2].append('d') print('d6=',d) print('a6=',a)
a1= [1, 2, ['x', 'y', 'z'], 3, ['x', 'y']] b1= [1, 2, ['x', 'y', 'z'], 3, ['x', 'y']] c1= [1, 2, ['x', 'y', 'z']] d1= [1, 2, ['x', 'y']] b4= [1, 2, ['x', 'y', 'z', 'b'], 3, ['x', 'y'], 4] a4= [1, 2, ['x', 'y', 'z', 'b'], 3, ['x', 'y'], 4] c5= [1, 2, ['x', 'y', 'z', 'b', 'c'], 5] a5= [1, 2, ['x', 'y', 'z', 'b', 'c'], 3, ['x', 'y'], 4] d6= [1, 2, ['x', 'y', 'd'], 6] a6= [1, 2, ['x', 'y', 'z', 'b', 'c'], 3, ['x', 'y'], 4]
欢迎各路侠客多多指教^_^
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通