什么是深浅拷贝,区别
深浅拷贝的区别
如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是
否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那
就是深拷贝,自食其力。
import copy
a = [1,2,3,4,5,['a','b','c']]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[5].append('d')
print('b',b) # [1,2,3,4,5,['a','b','c','d'],5]
print('c',c) # [1,2,3,4,5,['a','b','c','d']]
print('d',d)# [1,2,3,4,5,['a','b','c']]
可变对象,不可变对象
可变对象:一个对象在不改变其所指向的地址前提下,可以修改其所执行的地址中的值
不可变对象:一个对象所指向的地址上的值是不能修改的,如果修改了就是它执行的地址就改变了,相当于将这个对象指向的值复制出来一份,然后做了修改后存到另一个地址上了。
区别:可变对象就不会这样会修改值后另存到一个新的地址上,而是直接再原对象的地址上把值给改变了,这个对象依然执行这个地址
本质区别:可变对象修改了值,不会新建一个内存地址的对象,不可变对象如果修改了值,及时复制了一份新的内存地址,原始地址的值不会被改变
什么是深浅拷贝,区别相关推荐
- python——赋值与深浅拷贝
结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一--python的变量及其存储 在详细的了解python中赋值.copy和deepcopy之前,我们还是要花一点时间来 ...
- 是时候捋一捋Java的深浅拷贝了
在开发.刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝.拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的! 在对象的拷贝中,很多初学者可能搞不清到 ...
- set集合, 深浅拷贝, join, 列表和字典在循环中删除元素的问题, fromkeys( , )
一. set集合 空集合 a = set() set集合内的元素必须可哈希(不可变), int, str, bool, tuple set3 = {'1','alex',2,True,(1,2,[2, ...
- 编码,深浅拷贝和文件操作
三.再谈编码 小数据池, 常量池, id() 查看变量的内存地址 is和== is 判断内存地址是否一致 == 判断内容是否一致 小数据池的作用: 为了快速的创建字符串对象, 可以减少内存的浪费 用 ...
- Python中的赋值、引用和深浅拷贝
2019独角兽企业重金招聘Python工程师标准>>> 全局变量 在函数之外创建的变量属于main,又被称为全局变量.它们可以在main中的任意函数中访问,与局部变量在函数结束时消失 ...
- 深浅拷贝、函数、内置函数、文件处理、三元运算、递归
深浅拷贝 import copy copy.copy() #浅拷贝 copy.deepcopy() #深拷贝 num = 110 copynum = num #赋值 一.数字和字符串 对于 数字 和 ...
- 5张图搞懂Java深浅拷贝
微信搜一搜 「bigsai」 关注这个专注于Java和数据结构与算法的铁铁 文章收录在github/bigsai-algorithm 欢迎star收藏 如果本篇对你有帮助,记得点赞收藏哦! 在开发.刷 ...
- python copy函数用法_Python深浅拷贝
预备知识一--python的变量及其存储 在详细的了解python中赋值.copy和deepcopy之前,我们还是要花一点时间来了解一下python内存中变量的存储情况. 在高级语言中,变量是对内存及 ...
- boolean类型_JS核心理论之《数据类型、类型转换、深浅拷贝与参数传递》
数据类型 基本类型:共7种,也被称为值类型,是一种既非对象也无方法的数据.包括:string.number.bigint.boolean.null.undefined.symbol. 除了 null ...
最新文章
- 高效sql性能优化极简教程
- 心得丨吴恩达Deeplearning.ai 全部课程学习心得分享
- Maven实战系列文章目录
- thinkPHP5.0中使用header跳转没作用
- BC之链式块状结构:区块链之链式块状结构——链式块状结构、内容相关配图
- 打印更无缝:微软改善Win11中通用打印体验
- Open3d之坐标变换
- linux使用小命令使用汇集
- 解决办法:defined but not used [-Werror=unused-variable]
- ORA-01017: invalid username/password; logon denied
- Topaz Gigapixel AI打开软件闪退及加载图片闪退 解决办法
- ug冲模标准件库_UG NX插件
- 淘宝差评回复模板,最新最全差评回复话术
- Flutter TV应用的开发尝试
- python画两条曲线_python 实现将多条曲线画在一幅图上的方法
- 超人段永平的网易博客文集
- C# 利用AEC算法加密解密实现前台后台安全校验,附前端后台代码示例
- 电脑大写,电脑大写键盘怎么打开
- H3C设备的基本配置
- 时间片轮转算法(c++)