Python的copy模块
来源:互联网 发布:搜狗拼音输入法mac版 编辑:程序博客网 时间:2024/05/22 00:29
Python 的copy模块
- copy模块包括创建复合对象 (包括列表、元组、字典和用户定义对象的实例) 的深浅复制的函数。
- 浅复制,就是拷贝了对象,而深复制就是引用对象还是指向内存空间的同一块地方
copy(x)
创建新的复合对象并通过引用复制x的成员来创建x的浅复制。更加深层次说,
它复制了对象,但对于对象中的元素,依然使用引用。- 一般不使用
copy.copy(x)
是因为:使用诸如list(x), dict(x), set(x)等调用方式来创建x的浅复制,即直接使用类型名显然比使用copy()快很多 - 判断是否是浅复制,即拷贝 是通过
`is
a is b #返回的是True表示是引用,不是拷贝 #返回的是False 表示是拷贝
import copytask = {'person':'zjhouqio'}task['result'] = "wode "task1 = copy.copy(task)task['wodde'] ="nide"print taskprint task1"""拷贝了,不是引用的同一个对象(通过 is 来判断)"""##############输出{'person': 'zjhouqio', 'result': 'wode ', 'wodde': 'nide'}{'person': 'zjhouqio', 'result': 'wode '}
a = [1,2,3]b= list(a)a.append(5)b.append(4)print a,b###########输出[1, 2, 3, 5] [1, 2, 3, 4]
a = [1,2,3,5]m = aa.append(10)m.append(11)print a is mprint a,m#########输出True[1, 2, 3, 5, 10, 11] [1, 2, 3, 5, 10, 11]
copy(x)
创建新的复合对象并通过引用复制x的成员来创建x的浅复制。更加深层次说,它复制了对象,但对于对象中的元素,依然使用引用。
v = [[1], ['a'], ['A']]k = copy.copy(v)print vprint kv[0].append(2)print vprint k#############输出[[1], ['a'], ['A']][[1], ['a'], ['A']][[1, 2], ['a'], ['A']][[1, 2], ['a'], ['A']]#############说明copy(x)得到的列表中的元素,仍然是列表(对象),该对象在一个内存空间中,v,k中的元素只是引用了该对象
deepcopy()函数:完全的拷贝一个对象和一个对象的所有元素的值
- 通过创建新的复合对象并重复复制
x
的所有成员来创建x
的深复制
v = [[1], ['a'], ['A']]k = copy.copy(v)s = copy.deepcopy(v)print vprint kprint sprint "---------------------------"v[0].append(2)print vprint kprint sprint "---------------------------"s[0].append(10)print vprint kprint s#######################输出[[1], ['a'], ['A']][[1], ['a'], ['A']][[1], ['a'], ['A']]---------------------------[[1, 2], ['a'], ['A']][[1, 2], ['a'], ['A']][[1], ['a'], ['A']]---------------------------[[1, 2], ['a'], ['A']][[1, 2], ['a'], ['A']][[1, 10], ['a'], ['A']]##########################说明通过深复制,使得 s 不仅拷贝了v这个对象,而且对象中的元素也拷贝了
阅读全文
0 0
- Python的copy模块
- python模块 - copy模块
- python copy模块
- Python copy模块
- python小模块-----copy 模块
- python模块系列之 - copy
- python中的copy模块理解
- Windows下用Python你会几种copy文件的方法-Python shutil模块
- Python模块学习系列(7)----copy模块
- python常用模块介绍之二:copy模块
- [Python模块学习]copy模块,设计模式中的原型模式
- python的copy.copy()和copy.deepcopy()方法
- copy 模块
- 了解Python字典的copy
- 再踩Python的Shallow Copy
- python 变量的拷贝 copy
- python中copy的使用
- python中的copy模块(浅复制和深复制)
- TCP/IP 理解 3
- Vertx搭建Web服务器
- js赋值改变后原来的东西也改变了,影响了好几个其它使用同一个源数据的原因以及解决方法
- ATF(EL3级别运行环境初始化)
- 笔试题目之排序算法的稳定性
- Python的copy模块
- iTunes Connect 基本使用说明
- 爬虫应知道的http协议相关信息
- IGroupLayer接口相关
- 利用模板法的光条中心提取
- 转:生成对抗网络GANs理解(附代码)
- 数组反转
- iOS 逆向常用代码片段
- LaTeX + XeLaTeX + TexLive 2017 踏过的坑