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. leetcode C++ 46. 全排列 给定一个 没有重复 数字的序列,返回其所有可能的全排列。
  2. 基于opengl的复杂图形三维建模实现
  3. flink启动命令参数_[Flink]Flink1.3 指南四 命令行接口-阿里云开发者社区
  4. java版数据结构解迷宫问题_C语言数据结构之迷宫问题
  5. python带参数装饰器 函数名_python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)...
  6. 非关系型数据库--MongoDB
  7. Tensorflow GAN对抗生成网络实战
  8. Grid使用 ComboBox Binding DateTime Format WPF
  9. n160ii打印机查看ip地址_喷墨打印机自动清洁打印头方法你知道几个?
  10. java实验报告遇到的问题,JAVA实验报告_doc
  11. haneWIN NFS Server|haneWIN NFS Server(优秀NFS服务器)V1.2.16官方版-绿色下载吧
  12. NDK开发Android端RTMP直播推流程序
  13. 计算机无法继续安装程序,电脑提示nvidia安装程序无法继续 如何解决 - 驱动管家...
  14. 超级详细的H3C模拟器HCL的交换机Telnet服务配置过程(图文)
  15. python解压zip文件_python怎样压缩和解压缩ZIP文件(转)
  16. PoE介绍(网线供电)和POE交换机常见连接架构
  17. [Spark好友推荐]
  18. Vite css 热重载失效
  19. 中兴危机,谁最应该反思?
  20. A Survey of Adversarial Learning on Graph

热门文章

  1. Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
  2. OSChina 周五乱弹 —— 静静的思考下人生
  3. MAC apache配置
  4. 错误:Failed to create the Java Virtual Machine
  5. 运行Google CTemplate首页的例子遇到_CrtIsValidHeapPointer异常
  6. java 取得日期_java-如何从某个日期获取日期列表?
  7. python中自定义函数如何传递动态参数_python 函数的动态参数
  8. node 生成随机头像_微信头像新玩法?二次元头像自己捏,每款都独一无二
  9. 【学习笔记】JS进阶语法一事件进阶
  10. JDK、JRE、JVM三者间的关系