python同步赋值原理,Python直接赋值及深浅拷贝原理详解
定义
直接赋值:就是对象的引用(别名)
浅拷贝(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直接赋值及深浅拷贝原理详解相关推荐
- python复制列表元素_Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解...
Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解 概述 在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值.复制.浅 ...
- python类继承中构造方法_第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解...
第8.3节Python类的__init__方法深入剖析:构造方法与继承详解 一. 引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没 ...
- Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门
Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门 学习目标 Python处理Excel(使用openpyxl包).图表入门\ P ...
- python爬取图片-Python爬取网页中的图片(搜狗图片)详解
前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...
- python3d动态图-Python图像处理之gif动态图的解析与合成操作详解
本文实例讲述了Python图像处理之gif动态图的解析与合成操作.分享给大家供大家参考,具体如下: gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图.这里,就介绍下如何使用python ...
- python画椭圆-python opencv圆、椭圆与任意多边形的绘制实例详解
圆形的绘制 : OpenCV中使用circle(img,center,radius,color,thickness=None,lineType=None,shift=None)函数来绘制圆形 impo ...
- python硬件交互_对Python的交互模式和直接运行.py文件的区别详解
对Python的交互模式和直接运行.py文件的区别详解 看到类似C:\>是在Windows提供的命令行模式,看到>>>是在Python交互式环境下. 在命令行模式下,可以执行p ...
- python编译器怎么运行不在路径中的py文件_对python当中不在本路径的py文件的引用详解...
众所周知,如果py文件不在当前路径,那么就不能import,因此,本文介绍如下两种有效的方法: 方法1: 修改环境变量,在~/.bashrc里面进行修改,然后source ~/.bashrc 方法2: ...
- python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解
首先,先介绍两种引入模块的方法. 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 ...
- Python字符串对齐方法(ljust()、rjust()和center())详解
Python字符串对齐方法(ljust().rjust()和center())详解 Python str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust().rjust() 和 cente ...
最新文章
- InputStream OutputStream 傻傻分不清
- Flask出现Error code 400, message Bad request syntax异常
- python3.7.3 离线安装paramiko_centos7 python3 安装paramiko模块
- 科技复原,让 3000 多前年的木乃伊「发声」
- Scala的四种Web框架
- 牛客小白月赛12:月月给华华出题(欧拉函数)
- SpringBoot时间格式化的5种方法!
- 【文献学习】强化学习3:基于数据的方法
- php如何设计一个网站,如何设计一个优质的外贸网站?
- Nvidia League Player:来呀比到天荒地老
- MySQL基本数据操作
- 安装mongodb以及设置为windows服务 详细步骤
- apicloud中阿里云推送使用
- HTTP状态码全部说明
- 2014全国计算机等级考试大纲,2014全国计算机等级考试大纲级.doc
- AutoCAD.NET API2018二次开发第十九章
- 4h上手C++版Opencv
- 总结2012年世界经济形势主要特征
- 当代研究生英语读写教程的前5章译文
- CC2640R2F学习笔记(8)——Watchdog看门狗使用
热门文章
- python 中类属性共享问题
- c语言 linux取运行目录,c语言获取当前工作路径的实现代码(windows/linux)
- 面试前临时抱佛脚——常见的Shell脚本面试题
- linux守护实例有什么用,linux中的信号及进程守护的应用实例分享
- 编辑器的合并用不了_为什么图片和PDF合并后的PDF页面大小不一
- php变量类型怎么表示,PHP 数据类型_php
- php 代码规范 工具,PHP工具篇:PHPStorm IDE使用CodeSniffer代码规范化管理
- 统计字符串中指定字符出现次数(Java)
- iframe 有那些缺点?
- c语言if.while.for,C语言操纵语句输入输出ifwhilefor.ppt