浅拷贝的区别

如何区分深拷贝与浅拷贝,简单点来说,就是假设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']]

可变对象,不可变对象

可变对象:一个对象在不改变其所指向的地址前提下,可以修改其所执行的地址中的值

不可变对象:一个对象所指向的地址上的值是不能修改的,如果修改了就是它执行的地址就改变了,相当于将这个对象指向的值复制出来一份,然后做了修改后存到另一个地址上了。

区别:可变对象就不会这样会修改值后另存到一个新的地址上,而是直接再原对象的地址上把值给改变了,这个对象依然执行这个地址

本质区别:可变对象修改了值,不会新建一个内存地址的对象,不可变对象如果修改了值,及时复制了一份新的内存地址,原始地址的值不会被改变

什么是深浅拷贝,区别相关推荐

  1. python——赋值与深浅拷贝

    结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一--python的变量及其存储 在详细的了解python中赋值.copy和deepcopy之前,我们还是要花一点时间来 ...

  2. 是时候捋一捋Java的深浅拷贝了

    在开发.刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝.拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的! 在对象的拷贝中,很多初学者可能搞不清到 ...

  3. set集合, 深浅拷贝, join, 列表和字典在循环中删除元素的问题, fromkeys( , )

    一. set集合 空集合 a = set() set集合内的元素必须可哈希(不可变), int, str, bool, tuple set3 = {'1','alex',2,True,(1,2,[2, ...

  4. 编码,深浅拷贝和文件操作

    三.再谈编码 小数据池,  常量池, id() 查看变量的内存地址 is和== is 判断内存地址是否一致 == 判断内容是否一致 小数据池的作用: 为了快速的创建字符串对象, 可以减少内存的浪费 用 ...

  5. Python中的赋值、引用和深浅拷贝

    2019独角兽企业重金招聘Python工程师标准>>> 全局变量 在函数之外创建的变量属于main,又被称为全局变量.它们可以在main中的任意函数中访问,与局部变量在函数结束时消失 ...

  6. 深浅拷贝、函数、内置函数、文件处理、三元运算、递归

    深浅拷贝 import copy copy.copy() #浅拷贝 copy.deepcopy() #深拷贝 num = 110 copynum = num #赋值 一.数字和字符串 对于 数字 和 ...

  7. 5张图搞懂Java深浅拷贝

    微信搜一搜 「bigsai」 关注这个专注于Java和数据结构与算法的铁铁 文章收录在github/bigsai-algorithm 欢迎star收藏 如果本篇对你有帮助,记得点赞收藏哦! 在开发.刷 ...

  8. python copy函数用法_Python深浅拷贝

    预备知识一--python的变量及其存储 在详细的了解python中赋值.copy和deepcopy之前,我们还是要花一点时间来了解一下python内存中变量的存储情况. 在高级语言中,变量是对内存及 ...

  9. boolean类型_JS核心理论之《数据类型、类型转换、深浅拷贝与参数传递》

    数据类型 基本类型:共7种,也被称为值类型,是一种既非对象也无方法的数据.包括:string.number.bigint.boolean.null.undefined.symbol. 除了 null ...

最新文章

  1. 高效sql性能优化极简教程
  2. 心得丨吴恩达Deeplearning.ai 全部课程学习心得分享
  3. Maven实战系列文章目录
  4. thinkPHP5.0中使用header跳转没作用
  5. BC之链式块状结构:区块链之链式块状结构——链式块状结构、内容相关配图
  6. 打印更无缝:微软改善Win11中通用打印体验
  7. Open3d之坐标变换
  8. linux使用小命令使用汇集
  9. 解决办法:defined but not used [-Werror=unused-variable]
  10. ORA-01017: invalid username/password; logon denied
  11. Topaz Gigapixel AI打开软件闪退及加载图片闪退 解决办法
  12. ug冲模标准件库_UG NX插件
  13. 淘宝差评回复模板,最新最全差评回复话术
  14. Flutter TV应用的开发尝试
  15. python画两条曲线_python 实现将多条曲线画在一幅图上的方法
  16. 超人段永平的网易博客文集
  17. C# 利用AEC算法加密解密实现前台后台安全校验,附前端后台代码示例
  18. 电脑大写,电脑大写键盘怎么打开
  19. H3C设备的基本配置
  20. 时间片轮转算法(c++)

热门文章

  1. 一段幸福而又美丽的英语之旅
  2. 新版标准日本语初级_第十四课
  3. andoird TV 优化学习笔记
  4. 人人都在玩得人生重开模拟器,开源代码献上!
  5. 张小庆,在路上-开始(5)到肥牛城吃羊蝎子
  6. 博客空间超酷flash音乐播放器4
  7. Degenerate dimensions (退化的维)
  8. 西财计算机考研分数,2018西财考研复试常见问题解答
  9. c#提高datagridview刷新速度(两种方法计时对比)
  10. 超好用的iOS管理软件iMazing2.16.3官方中文版