python之深拷贝和浅拷贝

浅拷贝:只拷贝第一层内容.
       不管第一层内容为不可变还是可变数据类型,则第一层内容的内存地址都一样,内容也就一样。
深拷贝:把这个对象内容的内容全部拷贝一遍,引入copy模块
       若第一层内容为不可变数据类型,则第一层内容的内存地址都一样,内容也就一样;
       若第一层内容为可变数据类型,  则第一层内容的内存地址不一样,内容也就不一样。
# 深浅拷贝,赋值操作
lst1 = ["金","木","水",["土龙"]]
lst2 = lst1         # 赋值操作
lst3 = lst1[:]      # 浅拷贝
lst4 = lst1.copy()  # 浅拷贝
lst5 = copy.deepcopy(lst1)  # 深拷贝
lst1[3].append("土")
lst1.append("火")
print("原始数据:", id(lst1[1]), lst1)
print("赋值操作:", id(lst2[1]), lst2)
print("浅拷贝:  ", id(lst3[1]), lst3)
print("浅拷贝:  ", id(lst4[1]), lst4)
print("深拷贝:  ", id(lst5[1]), lst5)

# 运行结果
# 原始数据: 2232362115600 ['金', '木', '水', ['土龙', '土'], '火']
# 赋值操作: 2232362115600 ['金', '木', '水', ['土龙', '土'], '火']
# 浅拷贝:  2232362115600 ['金', '木', '水', ['土龙', '土']]
# 浅拷贝:  2232362115600 ['金', '木', '水', ['土龙', '土']]
# 深拷贝:  2232362115600 ['金', '木', '水', ['土龙']]

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值