1.在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用

(1)直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变

# -*- coding: utf-8 -*-if __name__ == '__main__':b = [1, 2, 3]a = bprint(a)print(b)a.append(4)print(a)print(b)


(2)copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变

# -*- coding: utf-8 -*-
import copyif __name__ == '__main__':b = [1, 2, ["hello", "word"]]a = copy.copy(b)print(a)print(b)a.append(4)print(a)print(b)b[2].append("鸿蒙2.0")print(a)print(b)

运行结果:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/test/main.py
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word'], 4]
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word', '鸿蒙2.0'], 4]       这里数据变了
[1, 2, ['hello', 'word', '鸿蒙2.0']]

(3)深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

# -*- coding: utf-8 -*-
import copyif __name__ == '__main__':b = [1, 2, ["hello", "word"]]a = copy.deepcopy(b)print(a)print(b)b[2].append("鸿蒙2.0")print(a)print(b)

运行结果:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/test/main.py
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word', '鸿蒙2.0']]

python深拷贝,浅拷贝,赋值引用相关推荐

  1. python数组元素赋值_Python数组中赋值,浅拷贝,深拷贝的区别

    要用到的工具 id(a) 函数用于获取对象a的内存地址. a is b 是用来比较 a 和 b 是不是指向同一个内存单元. 1. 直接赋值: 如下图用工具比较后发现直接赋值后两个列表指向同一内存单元. ...

  2. Python中的赋值、引用和深浅拷贝

    2019独角兽企业重金招聘Python工程师标准>>> 全局变量 在函数之外创建的变量属于main,又被称为全局变量.它们可以在main中的任意函数中访问,与局部变量在函数结束时消失 ...

  3. 对python中浅拷贝和深拷贝分析详细介绍

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

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

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

  5. python中浅拷贝与深拷贝

    参考链接 1. 引用 https://blog.csdn.net/qq_38556217/article/details/103002827 2. Python中变量在内存的存储与地址变化详解(深浅拷 ...

  6. python深拷贝和浅拷贝机制

    转自Python 直接赋值.浅拷贝和深度拷贝解析 区别 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy):copy 模块 ...

  7. 彻底理解Python中浅拷贝和深拷贝的区别

    目录 前言 1. 浅拷贝和深拷贝的概念 2. is和==的区别 3. 赋值操作 4. copy模块里面的copy()方法 5. copy模块里面的deepcopy()方法 6.字典自带的copy方法 ...

  8. python深拷贝和浅拷贝的使用场景_Python深拷贝和浅拷贝使用方法

    Python深拷贝和浅拷贝使用方法 发布时间:2020-06-06 16:52:01 来源:亿速云 阅读:182 这篇文章运用了实例代码展示Python深拷贝和浅拷贝使用方法,代码非常详细,可供感兴趣 ...

  9. 【转载】图解 Python 深拷贝和浅拷贝

    伯乐在线 > Python - 伯乐在线 > 所有文章 > 基础知识 > 图解 Python 深拷贝和浅拷贝 图解 Python 深拷贝和浅拷贝 2015/09/28 · 基础 ...

  10. python深拷贝一个对象_Python对象的深拷贝和浅拷贝详解

    本文内容是在<Python核心编程2>上看到的,感觉很有用便写出来,给大家参考参考! 浅拷贝 首先我们使用两种方式来拷贝对象,一种是切片,另外一种是工厂方法.然后使用id函数来看看它们的标 ...

最新文章

  1. RESTful API 设计规范精讲
  2. Ubuntu16.04下安装mysql5.7数据库
  3. python socket thread_python 使用socket与thread进行实时通信
  4. springboot 应用中静态资源下载
  5. 聊聊webflux参数校验
  6. codereview介绍
  7. juce中的BailOutChecker
  8. 红橙Darren视频笔记 builder设计模式+navigationBar导航条
  9. kafka计算机专业读法_面试官:Kafka 为什么快?
  10. 基于SWT的Sash和FormLayout的自定义分隔窗体
  11. 完美解析Opendrive地图格式数据
  12. 人工智能学习(十一):机器人学
  13. git pull 强制覆盖原版本
  14. 老男孩教育运维班100台规模集群存储系统搭建及数据实时备份上机实战
  15. java输出三角形星星
  16. 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)
  17. 蓝牙广播数据格式和动态改变
  18. CodeForces - 89A - Robbery
  19. 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤
  20. IBM Rational ClearQuest查询使用教程

热门文章

  1. rsync服务扩展应用
  2. pg_resetxlog清理的pg_xlog下的WAL日志
  3. Tensorflow学习笔记4:分布式Tensorflow
  4. [小记]Centos7网络配置DNS配置解决、yum出错解决。
  5. zhilizhili-ui 2016始动 开始做个样例站吧 (一)
  6. 势头迅猛的儿童手表:恐陷下一个文曲星之地?
  7. 几种开源软件授权协议
  8. Java并发编程之显式锁(Lock)使用
  9. 清除nginx服务器网站缓存数据
  10. 1.计算机语言发展史