定义

直接赋值:就是对象的引用(别名)

浅拷贝(copy):拷贝父对象,不拷贝对象内部的子对象

深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝父对象及其子对象

解释

b = a: 赋值引用,a和b都指向同一个对象

b = a.copy(): 浅拷贝,a和b都是一个独立的对象,但它们的子对象是指向统一对象(是引用)

b = copy.deepcopy(a): 深拷贝,a和b完全拷贝了父对象及其子对象,两者是完全独立的

示例

以下是直接赋值、浅拷贝和深拷贝之对比

import copy

a = [1, 2, 3, 4, ['a', 'b']] #原始对象

b = a #直接赋值,原始对象的引用

c = copy.copy(a) #浅拷贝

d = copy.deepcopy(a) #深拷贝

a.append(5) #修改对象a

a[4].append('c') #修改对象a中的['a', 'b']列表对象

print( 'a = ', a )

print( 'b = ', b )

print( 'c = ', c )

print( 'd = ', d )

以上实例执行输出结果为:

a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]

b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]

c = [1, 2, 3, 4, ['a', 'b', 'c']]

d = [1, 2, 3, 4, ['a', 'b']]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

python同步赋值原理,Python直接赋值及深浅拷贝原理详解相关推荐

  1. python复制列表元素_Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解...

    Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解 概述 在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值.复制.浅 ...

  2. python类继承中构造方法_第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解...

    第8.3节Python类的__init__方法深入剖析:构造方法与继承详解 一.    引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没 ...

  3. Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门

    Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门 学习目标 Python处理Excel(使用openpyxl包).图表入门\ P ...

  4. python爬取图片-Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...

  5. python3d动态图-Python图像处理之gif动态图的解析与合成操作详解

    本文实例讲述了Python图像处理之gif动态图的解析与合成操作.分享给大家供大家参考,具体如下: gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图.这里,就介绍下如何使用python ...

  6. python画椭圆-python opencv圆、椭圆与任意多边形的绘制实例详解

    圆形的绘制 : OpenCV中使用circle(img,center,radius,color,thickness=None,lineType=None,shift=None)函数来绘制圆形 impo ...

  7. python硬件交互_对Python的交互模式和直接运行.py文件的区别详解

    对Python的交互模式和直接运行.py文件的区别详解 看到类似C:\>是在Windows提供的命令行模式,看到>>>是在Python交互式环境下. 在命令行模式下,可以执行p ...

  8. python编译器怎么运行不在路径中的py文件_对python当中不在本路径的py文件的引用详解...

    众所周知,如果py文件不在当前路径,那么就不能import,因此,本文介绍如下两种有效的方法: 方法1: 修改环境变量,在~/.bashrc里面进行修改,然后source ~/.bashrc 方法2: ...

  9. python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解

    首先,先介绍两种引入模块的方法. 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 ...

  10. Python字符串对齐方法(ljust()、rjust()和center())详解

    Python字符串对齐方法(ljust().rjust()和center())详解 Python str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust().rjust() 和 cente ...

最新文章

  1. InputStream OutputStream 傻傻分不清
  2. Flask出现Error code 400, message Bad request syntax异常
  3. python3.7.3 离线安装paramiko_centos7 python3 安装paramiko模块
  4. 科技复原,让 3000 多前年的木乃伊「发声」
  5. Scala的四种Web框架
  6. 牛客小白月赛12:月月给华华出题(欧拉函数)
  7. SpringBoot时间格式化的5种方法!
  8. 【文献学习】强化学习3:基于数据的方法
  9. php如何设计一个网站,如何设计一个优质的外贸网站?
  10. Nvidia League Player:来呀比到天荒地老
  11. MySQL基本数据操作
  12. 安装mongodb以及设置为windows服务 详细步骤
  13. apicloud中阿里云推送使用
  14. HTTP状态码全部说明
  15. 2014全国计算机等级考试大纲,2014全国计算机等级考试大纲级.doc
  16. AutoCAD.NET API2018二次开发第十九章
  17. 4h上手C++版Opencv
  18. 总结2012年世界经济形势主要特征
  19. 当代研究生英语读写教程的前5章译文
  20. CC2640R2F学习笔记(8)——Watchdog看门狗使用

热门文章

  1. python 中类属性共享问题
  2. c语言 linux取运行目录,c语言获取当前工作路径的实现代码(windows/linux)
  3. 面试前临时抱佛脚——常见的Shell脚本面试题
  4. linux守护实例有什么用,linux中的信号及进程守护的应用实例分享
  5. 编辑器的合并用不了_为什么图片和PDF合并后的PDF页面大小不一
  6. php变量类型怎么表示,PHP 数据类型_php
  7. php 代码规范 工具,PHP工具篇:PHPStorm IDE使用CodeSniffer代码规范化管理
  8. 统计字符串中指定字符出现次数(Java)
  9. iframe 有那些缺点?
  10. c语言if.while.for,C语言操纵语句输入输出ifwhilefor.ppt