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是深拷贝,创建全新的对象。

本文由(壳先生)整理自网络,如转载请注明出处:https://www.mrshell.com;
本站发布的内容若侵犯到您的权益,请邮件联系 i@mrshell.com 删除,我们将及时处理!
===========================================================================

1. 本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2. 本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3. 不得使用于非法商业用途,商用请支持正版!不得违反国家法律,否则后果自负!
4. 若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

=================================================================

壳先生 » python中深浅拷贝的简单讲解(附代码)

发表评论

提供最优质的资源集合

立即查看 了解详情