python copy与deepcopy (拷贝与深拷贝)
copy与deepcopy
python 中的copy与deepcopy是内存数据的操作,但是两个函数有一定的区别。
1.copy
import copy list = [1, [4, 5, 6], 2, 3] list1 = copy.copy(list)print id(list) print id(list[1]) print id(list1) print id(list1[1])list[2] = 100 list[1][0] = 44 print list print list1结果: 46925320 46912776 46967368 46912776 [1, [44, 5, 6], 100, 3] [1, [44, 5, 6], 2, 3]
经过copy操作的得两个list,list1拥有两个同的地址(46925320和46967368),修改list时不会影响list1的值,但是 list中间的子列表[4,5,6]在list和list1中有相同的地址46912776,所以在修改list中的子列表会影响到list1中的子列表。
2.deepcopy
import copy list = [1, [4, 5, 6], 2, 3] list2 = copy.deepcopy(list)print id(list) print id(list[1]) print id(list2) print id(list2[1])list[2] = 100 list[1][0] = 44 print list print list2结果: 59508232 59495688 59509384 59508168 [1, [44, 5, 6], 100, 3] [1, [4, 5, 6], 2, 3]
经过deepcopy的list与list2用有不用的地址59508232,59509384,其中的子列表页拥有不同的地址, 所以不论怎样修改list都不用影响到list2。
结论:
经过copy操作的两个数据对象拥有不同的得地址空间 ,但是这个数据对象如果是内嵌了其他的复杂数据对象,这个内嵌的数据对象在
两个数据对象中拥有相同的地址空间,修改其中的值会互相印象。经过deepcopy的操作的不管是内层还是外层数据对象都拥有不同的地址空间,修改其中的值不会对两个对象都造成影响
转载于:https://www.cnblogs.com/FMS-Shaw/p/8546217.html
python copy与deepcopy (拷贝与深拷贝)相关推荐
- python copy deepcopy_python copy与deepcopy (拷贝与深拷贝)
copy与deepcopy python 中的copy与deepcopy是内存数据的操作,但是两个函数有一定的区别. 1.copy importcopy list= [1, [4, 5, 6], 2, ...
- Python copy()与deepcopy()方法的区别
copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式. 首先直接上结论: 我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在.所以改变 ...
- python copy()和deepcopy()解释(浅拷贝、深拷贝)
对于简单的 object,用 shallow copy 和 deep copy 没区别 复杂的 object, 如 list 中套着 list 的情况,shallow copy 中的 子list,并未 ...
- python:copy()和deepcopy()区别
1.对象的赋值 都是进行对象引用(内存地址)传递,即'' b is a'' ,a 变 b 也变 2.copy.copy(x):浅拷贝 会创建一个新的对象,即 "b is not a" ...
- python copy()和deepcopy()解释(import copy)
对于简单的 object,用 shallow copy 和 deep copy 没区别 复杂的 object, 如 list 中套着 list 的情况,shallow copy 中的 子list,并未 ...
- 一入python深似海--浅拷贝与深拷贝
python中有一个模块copy,deepcopy函数用于深拷贝,copy函数用于浅拷贝. 要理解浅拷贝,必须先弄清楚python中的引用. 引用 Python中一切都是对象,变量中存放的是对象的引用 ...
- Python天天美味(22) - 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deep ...
- python中copy模块的使用,深拷贝和浅拷贝
python中copy模块的使用,深拷贝和浅拷贝 文章目录: 一.copy模块的介绍 1.copy模块 二.copy模块的使用 拓展说明: 1.id( )函数的使用 2.is和== 的区别 pytho ...
- python copy函数用法_Python深浅拷贝
预备知识一--python的变量及其存储 在详细的了解python中赋值.copy和deepcopy之前,我们还是要花一点时间来了解一下python内存中变量的存储情况. 在高级语言中,变量是对内存及 ...
最新文章
- Java awt Desktop 无法调用系统浏览器
- elasticsearch-查询基础篇
- 单片机 10种软件滤波方法的示例程序
- Leetcode 144. 二叉树的前序遍历 (每日一题 20210820)
- Leetcode 21:Merge Two Sorted Lists(golang实现合并两条已经排序的链表)
- 【Linux】一步一步学Linux——setfacl命令(117)
- via logo html,HTML5 Audio Description (via screenreader)
- 计算面平均边_计算机图形学补充2:齐次空间裁剪(Homogeneous Space Clipping)
- 给后辈的一点建议,面试建议
- python访问注册表_读取注册表的Python代码
- JavaScript 对象和包装类
- TCP/IP网络编程之域名及网络地址
- unbantu安装 mysql --- 百度云
- 201903版的idea markdown无法预览的问题
- Intel笔记本处理器发展简史(二)
- reactive streams与观察者模式
- Java的笔记开源软件_安装 MapGuide Open Source 2.0(Java版本)笔记
- IIS管理器FTP站点中FTP防火墙支持页面
- OpenCV4 利用点线距离判断最小外接矩形的距离
- 怎么显示文件后缀名?很容易的几个步骤