Python中的引用和拷贝实例解析
作者:想吃手抓饼 时间:2022-02-26 00:59:13
这篇文章主要介绍了python中的引用和拷贝实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一.引用
a = ['a', 'b', 'c']
b = a
print(id(a))
print(id(b))
135300560
135300560
可以看到,变量a 和 b 的 id是完全一样的,这就说明a和b是同时指向内存的同一个区域的,即b随a的变化而变化.
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']]
画个图来理解就是如下:
当只有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']]
来源:https://www.cnblogs.com/liangweijiang/p/11816355.html
标签:python,引用,拷贝
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python 中的@运算符使用
2023-10-24 22:23:46
![](https://img.aspxhome.com/file/2023/3/124743_0s.png)
Python使用Selenium爬取淘宝异步加载的数据方法
2021-05-17 05:31:57
JavaScript中实现字符串的取左取右(实现left和right功能)
2009-07-20 12:39:00
解决jupyter notebook import error但是命令提示符import正常的问题
2022-08-19 22:10:30
快速一键生成Python爬虫请求头
2022-05-21 01:00:53
![](https://img.aspxhome.com/file/2023/2/101242_0s.jpg)
ASP MSSQL存储过程的实现小例
2011-04-06 11:02:00
keras自定义损失函数并且模型加载的写法介绍
2023-06-23 04:00:30
Python游戏开发之Pygame使用的最全教程分享
2021-01-11 05:45:55
Ranorex通过Python将报告发送到邮箱的方法
2021-08-17 03:57:43
![](https://img.aspxhome.com/file/2023/4/97654_0s.png)
详解Python中的进程和线程
2021-10-06 21:49:03
![](https://img.aspxhome.com/file/2023/5/133385_0s.png)
Blender Python编程实现批量导入网格并保存渲染图像
2021-06-09 04:21:20
![](https://img.aspxhome.com/file/2023/5/124965_0s.jpg)
python3代码中实现加法重载的实例
2023-07-13 12:01:31
python selenium在打开的浏览器中动态调整User Agent
2022-09-26 13:41:59
![](https://img.aspxhome.com/file/2023/8/133308_0s.png)
用vscode开发python的步骤详解
2023-11-10 11:39:22
![](https://img.aspxhome.com/file/2023/8/111948_0s.png)
关于DOM元素定位属性的深入学习
2008-04-02 11:46:00
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2022-09-11 11:28:23
Python 基于FIR实现Hilbert滤波器求信号包络详解
2023-07-13 01:31:47
![](https://img.aspxhome.com/file/2023/3/92433_0s.jpg)
一位网友的DIV CSS编码笔记——XieBiji
2008-09-12 12:22:00
Mootools 1.2教程(23)——滑动效果(Slide)
2009-03-04 12:33:00
深入了解Python Opencv数据增强
2023-10-27 05:00:01
![](https://img.aspxhome.com/file/2023/4/106994_0s.png)