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编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
python实现下载整个ftp目录的方法
Jan 17 Python
Django中使用Celery的教程详解
Aug 24 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
Feb 28 Python
python 解决flask uwsgi 获取不到全局变量的问题
Dec 22 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
Jan 21 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
django 数据库返回queryset实现封装为字典
May 19 Python
Python基于Serializer实现字段验证及序列化
Nov 04 Python
Python time库的时间时钟处理
May 02 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
1 Tube Radio
2021/03/02 无线电
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
几个高效,简洁的字符处理函数
2007/04/12 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
js计算精度问题小结
2013/04/22 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
pandas DataFrame运算的实现
2020/06/14 Python
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
珠宝店促销方案
2014/03/21 职场文书
文明村镇申报材料
2014/05/06 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
社区文明倡议书
2015/04/28 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
Nginx内网单机反向代理的实现
2021/11/07 Servers