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 with的用法
Aug 22 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
python logging日志模块的详解
Oct 29 Python
高质量Python代码编写的5个优化技巧
Nov 16 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
Jun 20 Python
Python.append()与Python.expand()用法详解
Dec 18 Python
Python concurrent.futures模块使用实例
Dec 24 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 Python
Python绘图之二维图与三维图详解
Aug 04 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
Python 数据可视化之Matplotlib详解
Nov 02 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
PHP 简单数组排序实现代码
2009/08/05 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
JavaScript AOP编程实例
2015/06/16 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
Angular5集成eventbus的示例代码
2018/07/19 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
django框架cookie和session用法实例详解
2019/12/10 Python
python如何保存文本文件
2020/06/07 Python
python中实现栈的三种方法
2020/12/19 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
汽车工程专业应届生求职信
2013/10/19 职场文书
2013英文求职信模板范文
2013/11/15 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
追悼会主持词
2014/03/20 职场文书
明星员工获奖感言
2014/08/14 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
学校师德师风整改方案
2014/10/28 职场文书
申报优秀教师材料
2014/12/16 职场文书
大学辅导员述职报告
2015/01/10 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书