关于python的copy()与deepcopy()之间的区别

copy为浅复制,不会产生一个独立的对象单独存在,如list中套着list的情况,当改变子list中的一个或多个元素,copy的内容也会一起变,而deepcopy(深复制)则不会改变。

import copy
list1 = [1,2,3]
list2 = [1,2,list1]
list3 = list2.copy()
list4 = copy.deepcopy(list2)
print(list3,list4)
list1[2] = 9
list1[1] = 8
list1[0] = 7
print(list3,list4)
list1 = [4,5,6] #整个改变不会改变
print(list3,list4)

输出结果如下:

[1, 2, [1, 2, 3]] [1, 2, [1, 2, 3]]
[1, 2, [7, 8, 9]] [1, 2, [1, 2, 3]]
[1, 2, [7, 8, 9]] [1, 2, [1, 2, 3]]

当可变数据类型(list/dict)中包含的子元素为可变数据类型,如[1,2,[3,4,5]],当改变如[3,4,5]这样的子元素列表中的部分元素时,copy()的镜像效果生效,使用deepcopy()不会受到影响。

关于python的copy()与deepcopy()之间的区别的更多相关文章

  1. Python 之 copy() 与 deepcopy() 之间的区别

    在 Python 之中,如果想要复制一个对象就免不了要理解浅复制与深复制.这也是 Python 与其他语言的区别之一. Python 的数据存储方式与其他语言不同.当你定义了一个变量: a = [, ...

  2. Python的copy()与deepcopy()区别

    Python的copy()与deepcopy()分别对应浅拷贝和深拷贝. 它们的理论区别: deepcopy():深复制(也就是寻常意义上的复制),即将被复制对象完全再复制一遍作为独立的新个体单独存在 ...

  3. iOS中assign,copy,retain之间的区别以及weak和strong的区别

    @property (nonatomic, assign) NSString *title; 什么是assign,copy,retain之间的区别? assign: 简单赋值,不更改索引计数(Refe ...

  4. iOS开发——基础篇——assign,copy,retain之间的区别以及weak和strong的区别

    @property (nonatomic, assign) NSString *title; 什么是assign,copy,retain之间的区别? assign: 简单赋值,不更改索引计数(Refe ...

  5. 从python中copy与deepcopy的区别看python引用

    讨论copy与deepcopy的区别这个问题要先搞清楚python中的引用.python的内存管理. python中的一切事物皆为对象,并且规定参数的传递都是对象的引用.可能这样说听起来比较难懂,对比 ...

  6. python中copy()和deepcopy()详解

    **首先直接上结论: —–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在.所以改变原有被复制对象不会对已经复制出来的新对象产生影响.—–而浅复制并不会产生一个独立的 ...

  7. python中copy与deepcopy的区别

    目录 区别 python代码举例 区别 高级语言中变量是对内存及其地址的抽象 copy.copy(object), 拷贝的是内嵌套结构的地址引用,当前到结构发生变化的时候,浅拷贝也相应的改变. cop ...

  8. iOS中assign,copy,retain之间的区别以及weak和strong的区别(面试)

    • copy: 用于希望保持一份传入值的拷贝,而不是值自身的情况,即把原来的对象完整的赋值到另外一地方,重新加载一内存区,一个地方变了不影响另一个地方的对象. • assign:  简单的直接赋值,相 ...

  9. Python的实例方法,类方法,静态方法之间的区别及调用关系

    如果只看这个图,很多人可能会看的一头雾水,特别是学过完全面向对象语言的同学, Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是 ...

  10. Python的进阶:copy与deepcopy区别

    copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式. 首先直接上结论: —–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在.所以 ...

随机推荐

  1. PHP基础题目

    1.请写一个函数实现以下功能:字符串'open_door'转换成'OpenDoor','make_by_id'转换成'MakeById' function strHandle($str) { $ret ...

  2. 聊聊 AI 平台存储方案和选型

    最近火爆全网的 ChatGPT 再次带来一股 AI 热潮. 过去的五年,AI 快速发展并应用到很多领域中.作为一家存储企业,我们也感受到了 AI 行业的活力,和我们交流团队中,AI 企业越来越多,有自 ...

  3. pandas教程01: pandas的安装和基本操作

      pandas是Python中常用的数据处理库,主要用来处理表格数据,类似于下面这种: 好好干文化有限公司员工薪资表 姓名 年龄 性别 年薪 奖金 久九刘 35 男 182600 42000 傅儿待 ...

  4. 【路由器】电信光猫中兴 F7010C 折腾记录

    目录 问题描述 解锁超管密码 前言 配置安卓抓包环境 抓包获取超管密码 IPv6 配置 光猫拨号 改用 SLAAC 路由器配置 wan6 配置 wan 配置 lan 配置 验证 参考资料 问题描述 近 ...

  5. (python)代码学习||2024.2.3||题目是codewars上的【Validate Sudoku with size `NxN`】

    题目的要求是写一个Sudoku类,类中要有一个实例函数判断传给对象的二维数组是否符合数独规则 题目链接:https://www.codewars.com/kata/540afbe2dc9f615d5e ...

  6. 下载安装JDK 和 IntelliJ IDEA 和 ActiveMq

    wget http://yun.diandaxia.com/other/jdk-8u92-linux-x64.rpm rpm -ivh jdk-8u92-linux-x64.rpm wget http ...

  7. 亚马逊Dynamo数据库解读(英文版)

    最近看了亚麻的Dynamo,个人认为其中always writeable的业务目标,对于DHT,vector clock,merkel tree的应用,包括对于一致性和高可用的权衡(基于CAP猜想,实 ...

  8. 惠普HP519打印机缺色处理记录

    打印蓝色缺失, 黑色出墨不均匀 开盖检查, 发现蓝色墨水管路中间有断线, 拆开打印头后, 用随机器配的桔红色吸墨器吸墨. 之后重新开机还是缺色. 检查彩色打印头, 用浅浅的一层热水泡下方喷嘴, 黄色红 ...

  9. JavaCV解决deprecated pixel format used, make sure you did set range correctly 打印问题

    虽然知道这个是原因,但有时候即使换了格式也还是打印,简直让人抓狂,就是不想打印这个怎么办呢? 其实很简单,只需要加上一行代码(这行代码虽然是C语言风格的,但是它确实是加在Java代码里的): //只打 ...

  10. Direct2D 另一种与D3D创建类似的方法

    在进行D2D学习的时候,发现了这样一篇文档, Direct2D Quickstart for Windows 8 只有这么一小段介绍, Direct2D is a native-code, immed ...