python深浅拷贝通俗讲解_python中深浅拷贝的简单讲解(附代码)

本篇文章给大家带来的内容是关于python中深浅拷贝的简单讲解(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

复习一下,深浅拷贝。

上代码:

# -*- coding: utf-8 -*- """ Created on Thu Sep 20 14:18:48 2018 @author: Lenovo """ import copy,json a={"ab":1,"cd":{"ef":2},"gh":[1,2,3]} print "a1:",a b=dict(a["cd"]) c=copy.copy(a) d=copy.deepcopy(a) e=a["cd"] a["cd"]["xy"]=3 a["fx"]=5 a["cd"]["ef"]=20 print "a2:",a print "b :",b print "c :",c print "d :",d print "e :",e

结果:

a1: {'gh': [1, 2, 3], 'ab': 1, 'cd': {'ef': 2}} a2: {'gh': [1, 2, 3], 'fx': 5, 'ab': 1, 'cd': {'xy': 3, 'ef': 20}} b : {'ef': 2} c : {'cd': {'xy': 3, 'ef': 20}, 'ab': 1, 'gh': [1, 2, 3]} d : {'cd': {'ef': 2}, 'ab': 1, 'gh': [1, 2, 3]} e : {'xy': 3, 'ef': 20}

从结果可以看出:

dict()命令创建了一个新的字典;

"="赋值 相当于使用了“引用”概念;

copy.copy是浅拷贝,对拷贝的信息进行修改则会相应修改,新增或对其他未拷贝的信息修改,浅拷贝对象是不会有修改;

例如c拷贝的范围是"gh","ab","cd"三个key,若对这三个key的value修改,拷贝后对象会相应修改,但是对其他信息修改,如增加key"fx",拷贝后的对象不会修改。

copy.deepcopy是深拷贝,创建全新的对象。

阅读全文

0 个人已赞赞一个收藏 (0)打赏

您入群打赏务必备注QQ号

支付宝扫一扫赞助

微信钱包扫描赞助

分享到:

生成海报

评论 抢沙发

评论前必须登录!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值