浅拷贝

  • 可变类型浅拷贝
    copy函数就是浅拷贝,只对可变类型的第一层对象进行拷贝,
    对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象
    可变类型:a = [1, 2, 3] b = [11, 22, 33]
    有子对象的可变类型: data = [a, b]
    普通赋值
    data_mycopy = data -- data和data_mycopy指向同一片空间
    浅拷贝
    data_copy = copy.copy(data) -- data和data_copy指向不同的空间
  • 不可变类型浅拷贝
    不可变类型进行浅拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用
    不可变类型: a = (1, 2, 3) b = (11, 22, 33)
    有子对象的不可变类型:data = (a, b)
    data_copy = copy.copy(data) -- data和data_copy指向同一片空间

发表本编内容,主要是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:772733408大家一起探讨。

 

深拷贝

  • 可变类型深拷贝
    深拷贝使用deepcopy函数
    只要发现拷贝对象有可变类型就会对该对象到最后一个可变类型的每一层对象进行拷贝,对每一层拷贝的对象都会开辟新的内存空间进行存储
    data_deepcopy = copy.deepcopy(data)
  • 不可变类型深拷贝
    不可变类型的深拷贝说明:
    不可变类型进行深拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用
    不可变类型: a = (1, 2, 3) b = (11, 22, 33)
    有子对象的不可变类型:data = (a, b)
    data_deepcopy = copy.deepcopy(data) -- data和data_copy指向同一片空间

【原创】禁止转载

发表本编内容,主要是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:772733408大家一起探讨。

python中浅拷贝和深拷贝的区别的更多相关文章

  1. Python中浅拷贝和深拷贝的区别总结与理解

    单层浅拷贝 import copy a = 1 # 不可变数据类型 copy_a = copy.copy(a) print(id(a),id(copy_a)) # 内存地址相同 a = [1,2] # ...

  2. JavaScript中浅拷贝和深拷贝的区别和实现

    深拷贝和浅拷贝的区别   浅拷贝(shallow copy):只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存:    深拷贝(deep copy):复制并创建一个一摸一样的对象,不共 ...

  3. Java中浅拷贝和深拷贝的区别

    浅拷贝和深拷贝的定义: 浅拷贝: 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.即对象的浅拷贝会对"主"对象进行拷贝,但不会复制主对象 ...

  4. python中浅拷贝和深拷贝分析

    首先,我们知道Python3中,有6个标准的数据类型,他们又分为可以变和不可变.不可变:Number(数字).String(字符串).Tuple(元组).可以变:List(列表).Dictionary ...

  5. JavaScript中浅拷贝和深拷贝的区别

    JavaScript数据类型 基础数据类型:保存在栈内存中的简单数据段 ,有undefined,boolean,number,string,null 引用数据类型:Array,object,Funct ...

  6. python中赋值,深拷贝,浅拷贝区别

    这三种 的区别就是 复制的变量 是否是原变量的引用. 赋值:只是原变量的引用. 浅拷贝和深拷贝的区别 需要通过 子元素 区分 浅拷贝:子元素的 引用相同 深拷贝:所以引用都不相同,完全复制一份 这三种 ...

  7. Python FAQ2:赋值、浅拷贝、深拷贝的区别?

    在Python编程过程中,经常会遇到对象的拷贝,如果不理解浅拷贝和深拷贝的概念,你的代码就可能出现一些问题.所以,在这里按个人的理解谈谈它们之间的区别. 一.赋值(assignment) 在<P ...

  8. 深度解析:python之浅拷贝与深拷贝

    深度解析python之浅拷贝与深拷贝 本文包括知识点: 1.copy与deepcopy 2.可变类型与不可变类型 1.copy与deepcopy 在日常python编码过程中,经常会遇见变量的赋值.这 ...

  9. C++浅拷贝和深拷贝的区别

    C++浅拷贝和深拷贝的区别 2012-04-24 21:22 11454人阅读 评论(6) 收藏 举报 c++deleteclass编译器c c++默认的拷贝构造函数是浅拷贝 浅拷贝就是对象的数据成员 ...

随机推荐

  1. Java多线程_JUC包下的阻塞队列

    在前面我们提到了阻塞队列,也用过了LinkedBolckingQueue队列了,在这里,我们主要对 ArrayBlockingQueue,PriorityBlockingQueue,DelayQueu ...

  2. codeforce Round #599(Div.2)

    题目传送门 A. Maximum Square 题目意思是给你n个长条,每个长条的高度是num[i](0 < i < n),每一条的宽度都是 1 :然后求这些长条可以组成的最大面积的正方形 ...

  3. 为wordpress的分类以及子分类指定固定模版

    在wordpress主题开发有多个不同分类页面时,通常使用category-{slug}.php的方式分别为每个分类开发不同的页面模版,slug为该分类的别名,并且无需其他设置仅仅以此命名即可. 但是 ...

  4. C语言基础练习——打印乘法口诀表

    C语言基础练习--打印乘法口诀表 JERRY_Z. ~ 2020 / 8 / 26 转载请注明出处! 代码: /* * @Author: JERRY_Z. * @Date: 2020-08-26 16 ...

  5. “网络巨轮”BGP的高级装备(增强配置)

    引入 如下图在很多时候,BGP建立对等体的时候,要去建立大量的EBGP和IBGP对等体,IBGP还要全连接,这就给我们带来了大量重复的工作,路由表就会变得很庞大,区域内和区域之间就会很难管理,以下这些 ...

  6. Android自动化测试,5个必备的测试框架

    Appium Appium是一个开源的移动测试工具,支持iOS和Android,它可以用来测试任何类型的移动应用(原生.网络和混合).作为一个跨平台的工具,你可以在不同的平台上运行相同的测试.为了实现 ...

  7. Python面向对象中的self到底是什么?

    初次接触类的概念,在学习的网页上,对self的解释是self是方法的一个参数,在方法调用的时候,这个参数是默认传参数的我们看一个例子 很多人学习python,不知道从何学起.很多人学习python,掌 ...

  8. 51,N皇后

    from typing import List# 这道题还是比较经典的深搜递归调用的问题.# 只需要保证二维列表的每一行,每一列,每一对角线只有一个皇后就好了.class Solution: def ...

  9. jumpserver如何在远程时使用复制粘贴-windwos系统下

    jumpserver堡垒机搭建好了,但是在使用的时候,有时候会出现远程下不能复制粘贴,这让体验十分不爽. 于是着手解决这个问题,附上参考链接,感谢大佬:http://itren.xiaolee.net ...

  10. 2 http

    response.write(string|buffer)可以调用0-n次 response.end(string|buffer) 方法.必须调用一次  response.setHeader('Con ...