python学习之copy模块
2024-10-18 22:32:26
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。
1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
2. copy.deepcopy 深拷贝 拷贝对象及其子对象
import copy
a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用
c = copy.copy(a) #对象拷贝,浅拷贝
d = copy.deepcopy(a) #对象拷贝,深拷贝 a.append(5) #修改对象a
a[4].append('c') #修改对象a中的['a', 'b']数组对象 print 'a = ', a
print 'b = ', b
print 'c = ', c
print 'd = ', d
输出结果:
a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c = [1, 2, 3, 4, ['a', 'b', 'c']]
d = [1, 2, 3, 4, ['a', 'b']]
另外一点,你判断对象之间是否是拷贝,可以使用is运算符来确定。
a is b -> True a与b引用的是同一个对象,不是拷贝
-> False a与b是彼此拷贝对象
最新文章
- 【JS基础】正则表达式
- 例如筋斗云的效果,但不通过offset定位的flag标记
- JS动态添加option和删除option
- codeforces 518B. Tanya and Postcard 解题报告
- Codeforces Round #253 (Div. 2) A. Anton and Letters
- CSS3 旋转代码备忘
- Dynamic Expression.Call Any
- 如何定制Sink扩展.Net Remoting功能
- 【OpenCV-Python】Python Extension Packages for Windows
- Java Web系列:Spring依赖注入基础
- Java 设计模式实现 不错的引用
- 异步tcp通信——APM.Core 服务端概述
- oracle中anyData数据类型的使用实例
- C++ STL中map存储方式——SAP电面(4)
- PL/SQL编程(1) - 存储过程,函数以及参数
- c# 上传附件大小限制的问题
- 设置firefox每次访问网页时检查所存网页的较新版本
- echarts中的区域缩放组件dataZoom,主动触发选区缩放点击事件
- 查看window系统电脑连接过的wifi密码
- 10.1-uC/OS-III任务堆栈空间
热门文章
- SSL与TLS的区别以及介绍
- bzoj 1318: [Spoj744] Longest Permutation 智商题
- 【转载】test和cmp比较
- CloudTest 事务监控:千呼万唤始出来
- 怎样配置spring aop
- 已授予账号 ";以服务方式登录";的权限
- IntelliJ idea 中使用Git
- Django admin site(一)ModelAdmin Options
- 使用PHP处理POST上传时$_FILES数组为何为空
- Oracle中Blob和Clob类型的区别与操作