Python中的引用和拷贝实例解析


Posted in Python onNovember 14, 2019

这篇文章主要介绍了python中的引用和拷贝实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一.引用

a = ['a', 'b', 'c']
b = a
print(id(a))
print(id(b))
135300560
135300560

可以看到,变量a 和 b 的 id是完全一样的,这就说明a和b是同时指向内存的同一个区域的,即b随a的变化而变化.

Python中的引用和拷贝实例解析

a = ['a', 'b', 'c']
b = a
a[1] = 'd'
print(b)
b[2] = 'e'
print(a)

['a', 'd', 'c']
['a', 'd', 'e']

二.浅拷贝  

浅拷贝只是复制了的父对象,即复制后的变量和复制前的子对象还是指向同一个对象

浅拷贝可以写为 copy.copy(obj) 或者 obj.copy()

import copy
a = ['a', 'b', ['c', 'd', 'e']]
b = copy.copy(a)
a.append('e')
print(b)
a[0] = 'g'
print(b)
a[2].append('f')
print(b)
['a', 'b', ['c', 'd', 'e']]
['a', 'b', ['c', 'd', 'e']]
['a', 'b', ['c', 'd', 'e', 'f']]

画个图来理解就是如下:

Python中的引用和拷贝实例解析

当只有a元素的子元素里的元素有变化时,b才会引起改变

三.深拷贝

深拷贝就比较好理解了,它相当于开辟了一个新空间是新指针指向新的空间,无论原对象怎么变化,新对象都不变

import copy
a = ['a', 'b', ['c', 'd', 'e']]
b = copy.deepcopy(a)
a.append('e')
print(b)
a[0] = 'g'
print(b)
a[2].append('f')
print(b)
['a', 'b', ['c', 'd', 'e']]
['a', 'b', ['c', 'd', 'e']]
['a', 'b', ['c', 'd', 'e']]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python交互式图形编程实例(三)
Nov 17 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
Python中Scrapy爬虫图片处理详解
Nov 29 Python
windows 下python+numpy安装实用教程
Dec 23 Python
python处理数据,存进hive表的方法
Jul 04 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
python整小时 整天时间戳获取算法示例
Feb 20 Python
Python安装selenium包详细过程
Jul 23 Python
对python while循环和双重循环的实例详解
Aug 23 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
使用python实现名片管理系统
Jun 18 Python
python如何查找列表中元素的位置
May 30 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 #Python
通过python扫描二维码/条形码并打印数据
Nov 14 #Python
VSCode中自动为Python文件添加头部注释
Nov 14 #Python
python中的函数递归和迭代原理解析
Nov 14 #Python
使用python实现对元素的长截图功能
Nov 14 #Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 #Python
python3实现单目标粒子群算法
Nov 14 #Python
You might like
Discuz! Passport 通行证整合
2008/03/27 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
Javascript - HTML的request类
2007/01/09 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
解决Layui中layer报错的问题
2019/09/03 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python多进程共享变量
2016/04/06 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
Python新手学习raise用法
2020/06/03 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
资深生产主管自我评价
2013/09/22 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
学生安全责任书
2014/04/15 职场文书
村干部培训方案
2014/05/02 职场文书
党支部三会一课计划
2014/09/24 职场文书
2015新年寄语大全
2014/12/08 职场文书
青春雷锋观后感
2015/06/10 职场文书
导游词之山东八大关
2019/12/18 职场文书
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技