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中break语句的用法
May 14 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
python中验证码连通域分割的方法详解
Jun 04 Python
对numpy中的数组条件筛选功能详解
Jul 02 Python
python实现求两个字符串的最长公共子串方法
Jul 20 Python
python反编译学习之字节码详解
May 19 Python
Python使用Pandas库实现MySQL数据库的读写
Jul 06 Python
如何用Python来搭建一个简单的推荐系统
Aug 07 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
python自动从arxiv下载paper的示例代码
Dec 05 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 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简单日历函数
2015/10/28 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
PyCharm设置护眼背景色的方法
2018/10/29 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
大学毕业生自荐书怎么写?
2014/01/06 职场文书
机电一体化职业规划书
2014/01/07 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
高一化学教学反思
2014/02/05 职场文书
小学生家长评语大全
2014/02/10 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
服装设计师职业生涯规划范文
2014/02/28 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
2015年护士节活动总结
2015/02/10 职场文书
关于环保的宣传稿
2015/07/23 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
详细了解MVC+proxy
2021/07/09 Java/Android
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android