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 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
python中的五种异常处理机制介绍
Sep 02 Python
Python socket编程实例详解
May 27 Python
Python操作MySQL数据库的方法
Jun 20 Python
深入理解Django自定义信号(signals)
Oct 15 Python
Python基于百度云文字识别API
Dec 13 Python
Python3.8中使用f-strings调试
May 22 Python
对Python3中列表乘以某一个数的示例详解
Jul 20 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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 mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
Vue实现购物车功能
2017/04/27 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python pandas用法最全整理
2019/08/04 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
初一生物教学反思
2014/01/18 职场文书
协议书的格式
2014/04/23 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
爱国主义主题班会
2015/08/14 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书