首页 > 其他 > 详细

深浅copy

时间:2020-03-25 16:21:19      阅读:43      评论:0      收藏:0      [点我收藏+]

集合set()

增删、变相改

#增
set.add()

#删
set.pop()
set.remove()

#变相改	先删后加
#step1
set.remove()
#step2
set.add()

深层copy

#赋值
l1 = [1,2,3,[11,22,33]]
l2 = l1
l1.append(66)
print(l1)
print(l2)

技术分享图片

#浅copy
l1 = [1,2,3,[22,33]]
l2 = l1.copy()
l1.append(666)
print(l1,id(l1))
print(l2,id(l2))
#浅copy
l1 = [1,2,3,[22,33]]
l2 = l1.copy()
l1[-1].append(666)
print(l1,id(l1))
print(l2,id(l2))

小列表的id是一样的

print(l1,id(l1[-1]))
print(l2,id(l2[-1]))

技术分享图片

内存地址一样

技术分享图片

深copy

# #深copy
import copy
l1 = [1,2,3,[22,33]]
l2 = copy.deepcopy(l1)
l3 = l1.copy()
print(‘本‘,l1,id(l1))
print(‘深‘,l2,id(l2))
print(‘浅‘,l3,id(l3))

全切片是浅copy

#深copy
l1 = [1,2,3,[22,33]]
l2 = l1[:]      #全切片浅copy
l1[-1].append(666)
print(l1,id(l1))
print(l2,id(l2))
  • 浅copy只copy列表壳子
  • 深copy会copy列表壳子+列表元素地址

深浅copy

原文:https://www.cnblogs.com/qianchanglai/p/12566272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!