谈谈Python的深浅拷贝?

发布时间:2022-04-18 09:41:11 人气:233 作者:多测师

  浅拷贝只是增加了一个指针指向一个存在的地址,

  而深拷贝是增加一个指针并且开辟了新的内存,这个增加的指针指向这个新的内存,

  采用浅拷贝的情况,释放内存,会释放同一内存,深拷贝就不会出现释放同一内存的错误

  一层的情况:

  import copy

  # 浅拷贝

  li1 = [1, 2, 3]

  li2 = li1.copy()

  li1.append(4)

  print(li1, li2) # [1, 2, 3, 4] [1, 2, 3]

谈谈Python的深浅拷贝?

  # 深拷贝

  li1 = [1, 2, 3]

  li2 = copy.deepcopy(li1)

  li1.append(4)

  print(li1, li2) # [1, 2, 3, 4] [1, 2, 3]

  多层的情况:

  import copy

  # 浅拷贝 指向共有的地址

  li1 = [1, 2, 3,[4,5],6]

  li2 = li1.copy()

  li1[3].append(7)

  print(li1, li2) # [1, 2, 3, [4, 5, 7], 6] [1, 2, 3, [4, 5, 7], 6]

  # 深拷贝 重指向

  li1 = [1, 2, 3,[4,5],6]

  li2 = copy.deepcopy(li1)

  li1[3].append(7)

  print(li1, li2) # [1, 2, 3, [4, 5, 7], 6] [1, 2, 3, [4, 5], 6]

  以上内容为大家介绍了谈谈Python的深浅拷贝?希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线