python复制与引用用法分析


Posted in Python onApril 08, 2015

本文实例讲述了python复制与引用用法。分享给大家供大家参考。具体分析如下:

简单复制是引用

a=[1,23,4]
b=a #这是引用
b.append(2323)
print(a,b) #([1, 23, 4, 2323], [1, 23, 4, 2323])

使用copy.copy进行浅拷贝

import copy
c=copy.copy(b)#拷贝
c.append(1)
print(b,c)#([1, 23, 4, 2323], [1, 23, 4, 2323, 1])
list1=[['a'],[1,2,4],[23,'a']]
list_copy=copy.copy(list1)
#浅拷贝,生成了一个新对象,但是新对象内的属性和内容仍然是原对象的引用

#当对新对象进行整体修改的时候修改的是本身
list_copy.append('append')
print(list_copy)#[['a'], [1, 2, 4], [23, 'a'], 'append']
print(list1)#[['a'], [1, 2, 4], [23, 'a']]

#当对新对象的内容进行修改的时候修改的是原对象,因为它仍然是引用
list_copy[1].append('append+')
print(list_copy)#[['a'], [1, 2, 4, 'append+'], [23, 'a'], 'append']
print(list1)#[['a'], [1, 2, 4, 'append+'], [23, 'a']]

使用copy.deepcopy进行迭代拷贝,之后就可以更改新对象的属性而不影响原对象了,只是效率会下降和内存占有量会上升。

对于list,dict,set等可直接使用x(object),object为相应类型,进行拷贝,这是最简单最直接有效地方式。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python批量修改文件名的实现代码
Sep 01 Python
实例说明Python中比较运算符的使用
May 13 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
Python简单实现Base64编码和解码的方法
Apr 29 Python
浅谈numpy库的常用基本操作方法
Jan 09 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
学习python分支结构
May 17 Python
Pytorch之parameters的使用
Dec 31 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
Django框架安装及项目创建过程解析
Sep 14 Python
python数字图像处理之图像的批量处理
Jun 28 Python
Python导入txt数据到mysql的方法
Apr 08 #Python
python集合类型用法分析
Apr 08 #Python
在Python中使用Mako模版库的简单教程
Apr 08 #Python
python中requests模块的使用方法
Apr 08 #Python
介绍Python中几个常用的类方法
Apr 08 #Python
python自然语言编码转换模块codecs介绍
Apr 08 #Python
python文件写入实例分析
Apr 08 #Python
You might like
PHP与javascript的两种交互方式
2006/10/09 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
css图片自适应大小
2007/11/28 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
2017/08/29 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
Python中enumerate函数代码解析
2017/10/31 Python
python实现随机梯度下降(SGD)
2020/03/24 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
RealTek面试题
2016/06/28 面试题
大学学年自我鉴定
2013/10/28 职场文书
一夜的工作教学反思
2014/02/08 职场文书
个人欠款担保书
2014/05/20 职场文书
学雷锋日活动总结
2015/02/06 职场文书
出纳岗位职责范本
2015/03/31 职场文书
学校捐书活动总结
2015/05/08 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js