python 深浅拷贝,深浅拷贝的区别

    SEO基础 wuya 54次浏览 已收录 0个评论

    深浅拷贝

    • 说明:深浅拷贝是针对可变元素(引用类型)而言的,不可变元素不存在深浅拷贝的问题
    • 示例:
      import copy
      
      # 值类型(不可变类型)
      a = 123
      a2 = a
      a3 = copy.copy(a)
      a4 = copy.deepcopy(a)
      
      print(a is a2)
      print(a is a3)
      print(a is a4)
      
      # 引用类型(可变类型)
      b = [1, 2, [3, 4]]
      b2 = b
      # 浅拷贝:只拷贝对象本身,内部元素只拷贝引用
      b3 = copy.copy(b)
      # 深拷贝:不但拷贝对象本身,还会拷贝内部元素
      b4 = copy.deepcopy(b)
      
      print(b is b2)
      print(b is b3)
      print(b is b4)
      
      b[0] = 100
      b[2][0] = 300
      print(b2)
      print(b3)
      print(b4)
      
      c = [1, 2, [3, 4]]
      # 浅拷贝
      d = c.copy()
      
      print(c is d)
      
      c[0] = 100
      c[2][0] = 200
      
      print(d)


    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明python 深浅拷贝,深浅拷贝的区别
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址