b = a: 赋值引用,a 和 b 都指向同一个对象。

b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向同一对象(是引用)

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a = {1: [1, 2, 4]}
b = a.copy()
print(a, b)
# 输出: {1: [1, 2, 4]} {1: [1, 2, 4]}a[1].append(4)
print(a, b)
# 输出:{1: [1, 2, 4, 4]} {1: [1, 2, 4, 4]}
# 由于a和b的子对象仍然是指向同一对象,对a的子对象的修改等于对b子对象的修改a[2] = 'abc'
print(a, b)
# 输出:{1: [1, 2, 4, 4], 2: 'abc'} {1: [1, 2, 4, 4]}

b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。

import copy
a = {1: [1, 2, 4]}
c = copy.deepcopy(a)
print(a, c)
# 输出:{1: [1, 2, 4]} {1: [1, 2, 4]}
a[1].append(5)
print(a, c)
# 输出:{1: [1, 2, 4, 5]} {1: [1, 2, 4]}

Python 直接赋值、浅拷贝和深度拷贝区别相关推荐

  1. Python 直接赋值、浅拷贝和深度拷贝全解析

    直接赋值:其实就是对象的引用(别名,其实就是一个人今天叫张三 明天叫张狗子的意思). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 de ...

  2. python中浅拷贝和深度拷贝的区别

    在很多面试题中都会问到浅拷贝跟深度拷贝的区别,前几天一个朋友也问到了我浅拷贝跟深度拷贝到底有什么区别,这里就简单举栗子讲一下两者的区别. 浅拷贝(copy()):拷贝父对象,不会拷贝对象的内部的子对象 ...

  3. python赋值浅拷贝和深拷贝的区别_python赋值、浅拷贝、深拷贝区别

    在写Python过程中,经常会遇到对象的拷贝,如果不理解浅拷贝和深拷贝的概念,你的代码就可能出现一些问题.所以,在这里按个人的理解谈谈它们之间的区别. 一.赋值(assignment) 在<Py ...

  4. Python 直接赋值、浅拷贝和深度拷贝解析

    转自菜鸟教程: https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html 直接赋值:其实就是 ...

  5. python深度复制_Python直接赋值、浅拷贝和深度拷贝解析

    直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象 ...

  6. Python直接赋值,浅拷贝和深度拷贝

    查阅得: 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象 ...

  7. 【Python】直接赋值、浅拷贝和深度拷贝解析

    直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象 ...

  8. python怎么避免浅拷贝_深度解读Python深拷贝与浅拷贝问题

    Illustrations by Leon Tukker ♚ 作者:PayneLi,Python全家桶,主要讲述数据挖掘.机器学习和深度学习领域的前沿技术,同时还会推荐一些行业最新论文.技术专家的经验 ...

  9. Python:赋值,copy和deepcopy区别

    参考:Python赋值,copy,deepcopy区别 结论 copy()与deepcopy()之间的主要区别是python对数据的存储方式. python2中,需要import copy模块.pyt ...

最新文章

  1. Ubuntu下安装Cppcheck源码操作步骤
  2. 日本漫画巨匠力作,看漫画就能学会Python,简直不要太轻松
  3. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性
  4. 华为的型号命名规则_华为最实惠5G手机来了!畅享Z 5G宣布:5月24日发
  5. 滴滴全链路压测解决之道 | 技术头条
  6. 为高考学子加油,Java快速开发平台,JEECG 3.7.6高考性能增强版本发布
  7. 牛客网NOIP赛前集训营 第6场 T1 最长路
  8. antd 表格树如何展开_React Ant Design树形表格的复杂增删改
  9. python交互界面实例_Python面向对象编程扑克牌发牌程序,另含大量Python代码!
  10. Python开发最常犯错误总结10种
  11. 『编程题全队』Alpha 阶段冲刺博客集合
  12. 如何在mac中使用downie下载视频?
  13. Docker 架构(二)【转】
  14. popen函数的实现
  15. mysql error 1017_[转载]解决 mysql ERROR 1017:Can t find file解决错误
  16. WES分析1-外显子测序
  17. python接入图灵机器人_Python使用微信接入图灵机器人过程解析
  18. 10.13 写一个用矩形法求定积分的通用函数,分别求∫_0^1▒sinxdx 、∫_0^1▒cosxdx、∫_0^1▒〖e^x dx〗的值。
  19. 凡事预则立,不预则废。做事提前5分钟,更多主动权。
  20. 小米集团2023校招芯片设计笔试

热门文章

  1. Lucene工具箱之OpenBitSet(一)
  2. CISCO ASA 防火墙 IOS恢复与升级
  3. 查看Aix系统配置命令
  4. VirtualBox 在Linux升级后不能用的解决办法实践
  5. linux管理用户和文件权限
  6. 转:vc中如何通过http的post方式上传文件
  7. 在Linux上搭建 一个简单的vsftpd服务器
  8. 加快LOOP嵌套循环的一个方法
  9. 关于MM的几个经典问题及回答
  10. Office2013 分享