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 相关文章推荐
Python3读取文件常用方法实例分析
May 22 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
Python新手们容易犯的几个错误总结
Apr 01 Python
python与字符编码问题
May 24 Python
Python常用数据类型之间的转换总结
Sep 06 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
Python PyQt5整理介绍
Apr 01 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
解决Jupyter因卸载重装导致的问题修复
Apr 10 Python
深入理解Python 多线程
Jun 16 Python
Python 中如何写注释
Aug 28 Python
使用Django框架创建项目
Jun 10 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
PHP6 先修班 JSON实例代码
2008/08/23 PHP
PHP 远程关机实现代码
2009/11/10 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
PHP中round()函数对浮点数进行四舍五入的方法
2014/11/19 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
python杀死一个线程的方法
2015/09/06 Python
Python正则表达式分组概念与用法详解
2017/06/24 Python
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
python mysql断开重连的实现方法
2019/07/26 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
详解python程序中的多任务
2020/09/16 Python
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
《落花生》教学反思
2014/02/25 职场文书
超市理货员岗位职责
2014/07/04 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python