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 如何快速找出两个电子表中数据的差异
May 26 Python
Python自动化运维之IP地址处理模块详解
Dec 10 Python
python 实现在txt指定行追加文本的方法
Apr 29 Python
Django 跨域请求处理的示例代码
May 02 Python
在CMD命令行中运行python脚本的方法
May 12 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
pytorch permute维度转换方法
Dec 14 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 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 n个不重复的随机数生成代码
2009/06/23 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
python实现基本进制转换的方法
2015/07/11 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
机械专业应届生求职信
2013/12/12 职场文书
给朋友的道歉信
2014/01/09 职场文书
组织鉴定材料
2014/06/02 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
刑事申诉状范文
2015/05/20 职场文书
党员反邪教心得体会
2016/01/15 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
Python基础之进程详解
2021/05/21 Python