iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >图解Python中浅拷贝copy()和深拷贝deepcopy()的区别
  • 921
分享到

图解Python中浅拷贝copy()和深拷贝deepcopy()的区别

Python浅拷贝copy()Python深拷贝deepcopy() 2023-05-19 14:05:38 921人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

关于浅拷贝和深拷贝想必大家在学习中遇到很多次,这也是面试中常常被问到的问题,借由这个时间,整理一下浅拷贝和深拷贝的关系 先从一个简单的例子入手吧 定义一个数组的嵌套结构 a = [1

关于浅拷贝和深拷贝想必大家在学习中遇到很多次,这也是面试中常常被问到的问题,借由这个时间,整理一下浅拷贝和深拷贝的关系

先从一个简单的例子入手吧 定义一个数组的嵌套结构

a = [1,2,3,[4,5,[6]]]

看一下它的gable frame

在这里插入图片描述

当我们做一下浅拷贝copy()时,global frame

a = [1,2,3,[4,5,[6]]] 
//浅拷贝
b = a.copy()

在这里插入图片描述

可以看到,浅拷贝对浅层的数组进行了复制,但深层的引用仍然是指向了原来的引用,这样就会在操作b数组时,会对原来的数组产生修改。

深拷贝

import copy
a = [1,2,3,[4,5,[6]]] 
//浅拷贝
b = a.copy()
//深拷贝
c = copy.deepcopy(a)

在这里插入图片描述

可以看到,深拷贝将其内部引用也进行了拷贝,在进行数据操作时是完全使用新数组,对原来的数组不产生影响。

  • 浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
  • 深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,

使用深拷贝的情况下,释放内存的时候不会因为出现浅拷贝时释放同一个内存的错误。

到此这篇关于图解python中浅拷贝copy()和深拷贝deepcopy()的区别的文章就介绍到这了,更多相关Python浅拷贝copy()和深拷贝deepcopy()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 图解Python中浅拷贝copy()和深拷贝deepcopy()的区别

本文链接: https://www.lsjlt.com/news/213354.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 图解Python中浅拷贝copy()和深拷贝deepcopy()的区别
    关于浅拷贝和深拷贝想必大家在学习中遇到很多次,这也是面试中常常被问到的问题,借由这个时间,整理一下浅拷贝和深拷贝的关系 先从一个简单的例子入手吧 定义一个数组的嵌套结构 a = [1...
    99+
    2023-05-19
    Python 浅拷贝copy() Python 深拷贝deepcopy()
  • python-浅拷贝(copy)与深拷贝(deepcopy)
    一:对象与元素、可变与不可变:        (1)对象:对象有存储地址id【就好像某个地址的快递仓库】,对象中的元素都有一个地址id【就像仓库的某某货架】        (2)对象与对象的元素:(对象)或(对象中的元素)有不同的类型【数字...
    99+
    2023-09-03
    数学建模
  • 浅拷贝和深拷贝的区别
    浅拷贝,指的是重新分配一块内存,创建一个新的对象,但里面的元素是原对象中各个子对象的引用。 2、深拷贝,是指重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。因此,新对象和原对象没有任...
    99+
    2023-09-21
    python
  • JavaScript中的深拷贝(deep copy)和浅拷贝(shallow copy)
    聚沙成塔·每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造...
    99+
    2023-10-19
    javascript 开发语言 ecmascript
  • c++中深拷贝和浅拷贝的区别
    深度拷贝和浅拷贝是 c++ 中复制对象的方法,它们在复制对象的行为上有着本质的区别:浅拷贝仅复制对象的指针或引用,原始对象的数据可能会受到影响。深拷贝复制对象的所有数据,创建新的对象,不...
    99+
    2024-05-12
    c++
  • python 中赋值,深拷贝,浅拷贝的区别
    目录一、赋值实例二、浅拷贝实例三、深拷贝实例赋值:其实就是对象的引用(相当于取别名)。浅拷贝(copy):拷贝父对象,不会拷贝对象内部的子对象,会引用子对象。深拷贝(deepcopy...
    99+
    2024-04-02
  • Python中深拷贝和浅拷贝有什么区别
    在Python中,深拷贝和浅拷贝是两种不同的拷贝对象的方法。 浅拷贝(Shallow Copy): 浅拷贝是创建一个新的对象,但是...
    99+
    2024-03-12
    Python
  • python中深拷贝和浅拷贝的区别是什么
    python中深拷贝和浅拷贝的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对...
    99+
    2023-06-19
  • Python深拷贝和浅拷贝有什么区别
    这篇“Python深拷贝和浅拷贝有什么区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python深拷贝和浅拷贝有什么区别...
    99+
    2023-07-02
  • Python中浅拷贝和深拷贝的区别总结与
    单层浅拷贝 import copy a = 1 # 不可变数据类型 copy_a = copy.copy(a) print(id(a),id(copy_a)) # 内存地址相同 a = [1,2] # 可变数据类型 copy_a ...
    99+
    2023-01-30
    区别 和深 Python
  • python浅拷贝和深拷贝
    python中的赋值是按引用来传递的,如果不是赋值而是拷贝,那就需要用到copy模块了,这就不得不谈浅拷贝和深拷贝了。   浅拷贝copy()   #!/usr/bin/python  import copy  class MyClass:...
    99+
    2023-01-31
    和深 python
  • Python中深拷贝与浅拷贝的区别介绍
    首先,我们知道 Python 中有6个标准的数据类型,他们又分为可以变和不可变。不可变:Number(数字)、String(字符串)、Tuple(元组)。可以变:List(列表)、D...
    99+
    2024-04-02
  • Java中深拷贝,浅拷贝与引用拷贝的区别详解
    目录引用拷贝浅拷贝深拷贝小结引用拷贝 引用拷贝: 引用拷贝不会在堆上创建一个新的对象,只 会在栈上生成一个新的引用地址,最终指向依然是堆上的同一个对象。 //实体类 public c...
    99+
    2024-04-02
  • Python中的深拷贝浅拷贝
    什么是浅拷贝,什么是深拷贝? 一、浅拷贝 浅拷贝就是:拷贝了引用,并没有拷贝内容,和在Linux中的硬链接有些类似,在python中,使用=赋值的动作就是一个浅拷贝 浅拷贝中的新旧对象,共用一个内存地...
    99+
    2023-09-08
    python 开发语言
  • Python中Numpy的深拷贝和浅拷贝
    目录1. 引言2. 浅拷贝2.1 问题引入2.2 问题剖析3. 深拷贝3.1 举个栗子3.2 探究原因4. 技巧总结4.1 判断是否指向同一内存4.2 其他数据类型5. 总结1. 引...
    99+
    2024-04-02
  • php中深拷贝和浅拷贝有哪些区别
    本篇内容介绍了“php中深拷贝和浅拷贝有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP中深拷贝和浅拷贝的区别:1、深拷贝赋值时...
    99+
    2023-06-29
  • JavaScript中浅拷贝和深拷贝的区别是什么
    本篇文章为大家展示了JavaScript中浅拷贝和深拷贝的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言1. 基础数据类型: undefined、bo...
    99+
    2024-04-02
  • Python中赋值、浅拷贝、深拷贝三者的区别
    本篇文章为大家展示了Python中赋值、浅拷贝、深拷贝三者的区别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;...
    99+
    2023-06-14
  • js中深拷贝和浅拷贝的区别有哪些
    这篇文章主要介绍js中深拷贝和浅拷贝的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对象和事件驱动并具有相对安全性并广...
    99+
    2023-06-14
  • javascript深拷贝和浅拷贝的区别有哪些
    这篇文章主要介绍“javascript深拷贝和浅拷贝的区别有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript深拷贝和浅拷贝的区别有哪些”文章能...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作