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

python中的copy方法

记录一下python中的浅拷贝copy和深拷贝deepcopy
例题如下:

import copyls = [1, 2, [3, 4], 5, 6]ls1 = ls.copy()ls2 = lsls3 = copy.deepcopy(ls)ls[2][1] = 0ls.pop(1)ls.append([7, 8])print(ls1)   #--------慙1慖print(ls2)   #--------慙2慖print(ls3)   #--------慙3慖

那么输出如下
在这里插入图片描述
我们分开来看

ls1
第一个ls1=ls.copy(),第一个是浅拷贝,对于浅拷贝,它只受修改值的影响,而不受对于列表append和pop方法的影响,所以只有对ls[2][1]的修改,append和pop并不会影响ls1的值

ls2
第二个ls2是直接复制ls2=ls,由于 ls2 只是 ls 的一个别名,所以对 ls 的所有修改都会反映在 ls2 上。因此,ls2 的输出将是 [1, [3, 0], 5, 6, [7, 8]]

ls3
第三个ls3.deepcopy()是深拷贝,所以在创建 ls3 时 ls 的状态被复制了,之后对 ls 的修改不会影响 ls3。因此,ls3 的输出将是 [1, 2, [3, 4], 5, 6]


http://www.mrgr.cn/news/41818.html

相关文章:

  • Java - LeetCode面试经典150题 - 区间 (三)
  • 详解JavaScript中的闭包
  • 从零开始搭建UVM平台(八)-加入agent
  • Spring 框架和Spring Boot
  • Dave Cheney: Go语言之禅
  • 【AI知识点】损失函数(Loss Function)
  • “衣依”服装销售平台:Spring Boot技术驱动的创新
  • JAVA的三大特性-封装、继承、多态
  • Python--解决从Hugging Face的服务器下载某个预训练模型或其相关的文件问题
  • 手机使用指南:如何在没有备份的情况下从 Android 设备恢复已删除的联系人
  • preconnect 预解析
  • Python--导入模块报错处理
  • 【数据库差异研究】update与delete使用表别名的研究
  • 快速上手 Java:给已经学会 C++ 的开发者的指南
  • 理解无监督学习、无监督图像分割
  • <<迷雾>> 第6章 加法机的诞生(1)--全加器 示例电路
  • 【运维类资料集】实施运维方案(word)
  • PostgreSQL升级:使用pg_upgrade进行大版本(16.3)升级(17.0)
  • 想学道家智慧,误打误撞被儒家引导读《道德经》?这是怎么回事?
  • SpringBoot驱动的美容院管理系统:优雅与效率的结合