python浅谈,赋值深浅拷贝
来源:互联网 发布:多玩魔兽数据库3.35 编辑:程序博客网 时间:2024/06/05 05:01
浅拷贝和赋值两者的意义相差不大,都是creat一个变量,变量的指向原数据的内存地址,而深拷贝则是开辟出一个新的地址,把整个数据从新获取过去,变成自己的
import copy#浅拷贝、深拷贝区别:#实例一:dic = {'k1':'v1','k2':'123456','k3':[1,2,3,4,5,6,],'k4':{'c1':'p1','c2':'123456'}}new1_dic = copy.copy(dic) #浅拷贝new2_dic = copy.deepcopy(dic) #深拷贝print(id(dic['k3']))print(id(new1_dic['k3']))print(id(dic['k4']))print(id(new1_dic['k4']))#深拷贝所显示出来的id不一样print(16*'*')print(id(dic['k3']))print(id(new2_dic['k3']))print(id(dic['k4']))print(id(new2_dic['k4']))
#结果:
16851625455841685162545584****************1685196451208168519645140016851625455841685196466792
我们可以从结果中看到,浅拷贝这个变量id是指向原数据的,并没有开辟出新的空间用来存放
而深拷贝则是开辟了新地址用于存放,所以这就造成了实例二这样的情况:
#实例二:print("example two!!!")new3_dic = copy.copy(dic) #浅拷贝new3_dic['k3'][0] = 'change'print(dic)print(new3_dic) #可以看到,用new3_dic浅拷贝之后修改里面的数据,会把原dic的数据也修改了(ps:浅拷贝没有开辟新的空间,还是指向原obj内存#如果要保留元数据,获得新的数据并修改,则采用深拷贝:print(16*'#')new4_dic = copy.deepcopy(dic)#浅拷贝new4_dic['k3'][0] = 'new_change'print(dic)print(new4_dic)
#结果:
example two!!!{'k1': 'v1', 'k2': '123456', 'k3': ['change', 2, 3, 4, 5, 6], 'k4': {'c1': 'p1', 'c2': '123456'}}{'k1': 'v1', 'k2': '123456', 'k3': ['change', 2, 3, 4, 5, 6], 'k4': {'c1': 'p1', 'c2': '123456'}}################{'k1': 'v1', 'k2': '123456', 'k3': ['change', 2, 3, 4, 5, 6], 'k4': {'c1': 'p1', 'c2': '123456'}}{'k1': 'v1', 'k2': '123456', 'k3': ['new_change', 2, 3, 4, 5, 6], 'k4': {'c1': 'p1', 'c2': '123456'}}
我们可以看到,浅拷贝之后,对拷贝的变量进行赋值,会把元数据也修改了,但是深拷贝因为开辟了新的空间存放数据,所以赋值修改的还是变量自己,并不会印象到原数据
阅读全文
0 0
- python浅谈,赋值深浅拷贝
- python赋值和深浅拷贝
- python 赋值、深浅拷贝、作用域
- Python之赋值与深浅拷贝
- python——赋值与深浅拷贝
- python——赋值与深浅拷贝
- python——赋值与深浅拷贝
- python的赋值与深浅拷贝
- python深浅拷贝
- python 深浅拷贝 进阶
- Python之深浅拷贝
- python 深浅拷贝
- python 深浅拷贝
- python深浅拷贝探究
- python学习-深浅拷贝
- python中的深浅拷贝
- python中的深浅拷贝
- python 深浅拷贝
- 数据类型以及printf的使用说明
- 比特币与区块链
- ubuntu16.04 安装配置python3.6
- Servlet的对象与JSP的九大内置对象
- 【笔记】相图热力学基本理论
- python浅谈,赋值深浅拷贝
- 操作系统(6)—— 早期存储管理
- Linux-mariadb数据库管理
- 个人总结41
- hive入门之安装模式
- PHPRAP v1.0.5版本发布了,修复BUG及注册页面增加注册口令项
- AJAX
- 【C++】内存对齐
- 小程序合集