当前位置: 首页 > news >正文

浅拷贝和深拷贝的区别

浅拷贝和深拷贝

总结:浅拷贝对象数据共享,深拷贝是一个完全独立的对象,因此对象数据不共享。

浅拷贝(Shallow Copy)

浅拷贝是指创建一个新的对象,但是该新对象只是原始对象的一个副本。具体而言,浅拷贝会创建一个新的对象,并将原始对象的引用复制到新对象中。因此,新对象和原始对象将共享相同的数据。如果原始对象中的数据被修改,则新对象中的数据也将被修改。在Python中,可以使用copy函数来实现浅拷贝。例如:

import copy
a = [1,2,3,4]
b = a    #或者 b = a.copy(), = 赋值默认是浅拷贝。
b[0] = 0
print(a)

输出[0,2,3,4].
修改a的值b也会改,修改b的值a也会改。

深拷贝(Deep Copy)

深拷贝是指创建一个新的对象,并将原始对象中的数据复制到新对象中。深拷贝会创建一个完全独立的对象,因此新对象和原始对象不共享数据。在Python中,可以使用copy模块中的deepcopy函数来实现深拷贝。例如:

import copy
a = [1, 2, 3, 4]
b = copy.deepcopy(a)
a[0] = 0
print('a:',a)
print('b:',b)

输出:
a: [0, 2, 3, 4]
b: [1, 2, 3, 4]
可见修改a,b并不会相互影响。

注意:!!Python中 = 默认是浅拷贝

http://www.lryc.cn/news/36381.html

相关文章:

  • 6个常用Pycharm插件推荐,老手100%都用过
  • TCP的11种状态
  • new 指令简单过程 / 类加载简单过程初始化
  • Asan基本原理及试用
  • 深度学习应用技巧4-模型融合:投票法、加权平均法、集成模型法
  • 【并发编程】深入理解Java内存模型及相关面试题
  • C++编程语言STL之queue介绍
  • ACO优化蚁群算法
  • SwiftUI 常用组件和属性(SwiftUI初学笔记)
  • Centos 中设置代理的两种方法
  • 高速PCB设计指南系列(一)
  • 云端IDE:TitanIDE v2.6.0 正式发布
  • 【Python】tqdm 模块
  • 论文阅读:Adversarial Cross-Modal Retrieval对抗式跨模式检索
  • 计算机网络复习
  • unity动画--动画绑定,转换,用脚本触发
  • 车载汽车充气泵PCBA方案
  • Android 连接 MySQL 数据库教程
  • tmall.item.update.schema.get( 天猫编辑商品规则获取 )
  • Leetcode 2379. 得到 K 个黑块的最少涂色次数
  • [深入理解SSD系列 闪存实战2.1.3] 固态硬盘闪存的物理学原理_NAND Flash 的读、写、擦工作原理
  • 总结:Linux内核相关
  • flutter工程创建过程中遇到一些问题。
  • 记录实现操作系统互斥锁的一次思考
  • 计算机SCI期刊的分值是什么意思? - 易智编译EaseEditing
  • 5MW风电永磁直驱发电机-1200V直流并网MATLAB仿真模型
  • 10 个常见的 JavaScript 面试问题以及如何回答它们
  • 字节跳动-今日头条后端开发一面面经
  • 再见 ETHDenver 2023
  • 阿里云dataworks表操作