python 深拷贝&浅拷贝

来源:互联网 发布:咖啡机推荐 知乎 编辑:程序博客网 时间:2024/05/29 14:20
  • 可以理解为:浅拷贝就是对引用的拷贝,所谓深拷贝就是对对象的资源的拷贝。(类似java)

  • 赋值操作的理解:

    • 赋值是将一个对象的地址赋值给一个变量,让变量指向该地址
    • 修改不可变对象(str、tuple)需要开辟新的空间
    • 修改可变对象(list等)不需要开辟新的空间
  • b = a 与 b=a[:]的区别
    • b=a 表示b引用a,则意味着b指向a的地址
    • b=a[:] a[:]创建了一个a的副本,是一个深拷贝,则意味着b引用a的副本,b与a中元素的地址不同,只是值相同
      这里写图片描述
  • 例子:

    a=[1,2,3]b=ab[:]=[x+1 for x in a]print a, b输出:[2, 3, 4] [2, 3, 4]b = [x-1 for x in a]print a,b输出:[2, 3, 4] [1, 2, 3]
原创粉丝点击