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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
Python标准库内置函数complex介绍
Nov 25 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
Python可变对象与不可变对象原理解析
Feb 25 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 Python
Python实现手绘图效果实例分享
Jul 22 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
Python基于Faker假数据构造库
Nov 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
PHP 手机归属地查询 api
2010/02/08 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
python3中的md5加密实例
2018/05/29 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Python 面向对象之类class和对象基本用法示例
2020/02/02 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
美国在线健康和美容市场:Pharmapacks
2018/12/05 全球购物
争论的故事教学反思
2014/02/06 职场文书
人事部岗位职责范本
2014/03/05 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
2016特色励志班级口号
2015/12/24 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL
python通过新建环境安装tfx的问题
2022/05/20 Python