Python学习之深浅拷贝
2017-09-11 16:52
495 查看
from copy import deepcopy d1 ={'name':'Bob','hobby':[1,2,3]} #元字典 d2 = d1.copy() #浅拷贝 d3 = deepcopy(d1) #深拷贝 d1['name']='Jack' d1['hobby'].append(4) d2['hobby'].append(5) d3['hobby'].append(6) print '元字典',d1 print '浅拷贝',d2 print '深拷贝',d3
结果:
元字典 {'hobby': [1, 2, 3, 4, 5], 'name': 'Jack'} 浅拷贝 {'hobby': [1, 2, 3, 4, 5], 'name': 'Bob'} 深拷贝 {'hobby': [1, 2, 3, 6], 'name': 'Bob'}
可见:
浅复制
浅复制.copy方法开辟了新的空间
元字典中不可变对象(int,str)与浅复制对象互不影响
元字典中可变对象(list,dict),在浅复制对象中只是个引用(既其位置处存放的只是元字典中可变元素的地址),因此会互相影响
深复制
深复制deepcopy()方法开辟了新的空间
元字典中不可变对象(int,str)与深复制对象互不影响
元字典中可变对象(list,dict),在深复制对象中也被完全复制过来,开辟空间存放,因此与元字典是互不影响的
相关文章推荐
- python开发学习-day03(set集合、collection系列 、深浅拷贝、函数)
- Python学习笔记摘要(一)类型 字符串 函数 列表 深浅拷贝
- Python 学习日记第六篇 -- 深浅拷贝
- python学习笔记:深浅拷贝的使用和原理
- Python学习(21)--深拷贝与浅拷贝
- python基础系列(三)---set、collection、深浅拷贝
- Python学习 之 对内存的使用(浅拷贝和深拷贝)
- Python中的深浅拷贝
- Python3 深浅拷贝
- python 赋值、深浅拷贝、作用域
- [Python笔记]第三篇:深浅拷贝、函数
- Python中的深浅拷贝
- python中的深浅拷贝
- ios 深浅拷贝学习
- 浅析Python中的赋值和深浅拷贝
- python深浅拷贝
- Python基础:深浅拷贝
- python浅谈,赋值深浅拷贝
- Python学习17:使用Python拷贝文本文件
- python学习之拷贝