python——深拷贝与浅拷贝的区别
一、浅拷贝
原列表
data1=[8,24,[2,30,35]]
浅拷贝后的列表
data2=data1.copy()原列表的内存地址
print(id(data1)) 2726096606848
拷贝后的内存地址
print(id(data2)) 2726096600192原列表的第一个元素地址(不可变的数据类型)
print(id(data1[1])) 2726088240144
拷贝后列表的第一个元素地址(不可变的数据类型)
print(id(data2[1])) 2726088240144原列表的最后一个元素地址(可变的数据类型)
print(id(data1[-1])) 2726096599360
拷贝后列表的最后一个元素地址(可变的数据类型)
print(id(data2[-1])) 2726096599360对子列表的元素进行更改,二者均产生变化,因为都指向同一个内存地址
data1[-1].append(7)
print(data1) [8, 24, [2, 30, 35, 7]]
print(data2) [8, 24, [2, 30, 35, 7]]
对子列表的元素进行更改,二者均产生变化,因为都指向同一个内存地址
二、深拷贝
原列表
data1=[8,24,[2,30,35]]
深拷贝后的列表
data2=data1.deepcopy()原列表的内存地址
print(id(data1)) 2726096511616
拷贝后的内存地址
print(id(data2)) 2726096606848原列表的第一个元素地址(不可变的数据类型)
print(id(data1[1])) 2274609884176
拷贝后列表的第一个元素地址(不可变的数据类型)
print(id(data2[1])) 2274609884176原列表的最后一个元素地址(可变的数据类型)
print(id(data1[-1])) 2274619691136
拷贝后列表的最后一个元素地址(可变的数据类型)
print(id(data2[-1])) 2274619691776对子列表的元素进行更改,另一个不产生变化,因为内存地址发生了变化,指向了不同的内存地址
data2[-1].append(7)
print(data1) [8, 24, [2, 30, 35]]
print(data2) [8, 24, [2, 30, 35, 7]]
对子列表的元素进行更改,另一个不产生变化,因为内存地址发生了变化,指向了不同的内存地址
总结:
1、浅拷贝只拷贝父对象,不会拷贝父对象中子对象
2、深拷贝不但拷贝父对象,父对象中的子对象也会拷贝
3、不可变对象,无论是深拷贝还是浅拷贝,都不会发生拷贝
python——深拷贝与浅拷贝的区别相关推荐
- 【233】python—深拷贝与浅拷贝的区别
♣ 题目部分(原文见公众号:python宝) python宝 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5NjI ...
- Python深拷贝和浅拷贝的区别
首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别. 什么是可变对象,什么是不可变对象: 可变对象 ...
- python深拷贝和浅拷贝的区别_【转】python的复制,深拷贝和浅拷贝的区别
在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,[& ...
- Python 深拷贝和浅拷贝的区别
在Python中,对象的赋值,深浅拷贝之间是有很大差异的,入过在使用过程中不注意区别的的话,可能会产生意想不到的结果而不自知. 下面就通过简单地例子介绍一下这些概念之间的差别. 对象的赋值 直接看一段 ...
- Python基础:对象的深拷贝和浅拷贝的区别
Python基础:对象的深拷贝和浅拷贝的区别 1 变量与对象 2 不可变对象与可变对象 3 直接赋值 4 浅拷贝 5 深拷贝 参考文献 1 变量与对象 对象:内存中存储数据的实体,有明确的类型.在Py ...
- python 深拷贝_详解python的复制,深拷贝和浅拷贝的区别
概述 今天主要来看看Python中的浅拷贝和深拷贝内容,这里用一个实例来说明~ 需求: 将一个列表的数据复制到另一个列表中. 思路: 使用列表[:],拿不准可以调用copy模块. 实现方法: #!/u ...
- Python中深拷贝与浅拷贝的区别?
往期面试题: 列举Python中的标准异常类? 说说Python面向对象三大特性? 说说Python中有几种数据类型? 说说Python模块主要分哪三类? 废话不多说,开始今天的题目: 问:说说Pyt ...
- python的复制,深拷贝和浅拷贝的区别
python的复制,深拷贝和浅拷贝的区别 在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有 ...
- python中深拷贝与浅拷贝的区别
####################python中的数据类型####################### ##########python中的数据类型有6种,分别为:数字类型如int,float ...
最新文章
- Android短消息备份闪退,Android Socket发送信息时闪退
- nova 之compute服务
- Android组件之BroadCast简单实践
- Android kotlin DataBinding 之 unresolved reference: BR
- python google buffer_python调用Google Protocol Buffer
- python3安装后无法使用退格键的问题
- 决策树php,决策树模型组合之随机森林与GBDT
- 通用职责分配软件原则之8-中介原则
- Python+turtle绘制虚线同心圆
- 适合程序员的简历模板
- 数据包络分析--Malmquist指数
- 到底什么是端到端(edge-to-edge)啊?
- C/C++学习笔记——C基础:C语言概述
- 【计算机网络】湖科大微课堂笔记 p7-10 计算机网络体系结构:常见的计算机网络体系结构、必要性、分层思想、专业术语
- linux笔记——简单概念整理
- Ceph分布式存储实战.
- python数据分析-线性回归选择基金
- 浏览器支持什么字体?
- java判断数据类型
- vue elementui 搜索栏子组件封装
热门文章
- mysql获取日期的月日_MySQL获取月,日的日期列表
- 开启ntp服务_Linux入门:Linux自有服务及软件包
- 邀请参加活动的邀请函_圣诞节点灯仪式活动邀请函制作
- 这个省到2025年,PUE>1.3存量大型数据中心将全部腾退关停!
- 调查:新冠病毒对全球结构化布线市场的影响
- 广东移动数据中心攻关“液/气双通道散热技术”
- java创建集合有的不用泛型_为什么在Java泛型右手边的集合类型没有任何影响?...
- Algorithm:【Algorithm算法进阶之路】之十大经典排序算法
- Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略
- Py之Queue:python库之Queue的简介、安装、使用方法之详细攻略