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数据结构之二叉树的遍历实例
Apr 29 Python
零基础写python爬虫之HTTP异常处理
Nov 05 Python
Python的Django框架中的表单处理示例
Jul 17 Python
Python3字符串学习教程
Aug 20 Python
Python字符串和字典相关操作的实例详解
Sep 23 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
解决python写入mysql中datetime类型遇到的问题
Jun 21 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
使用python动态生成波形曲线的实现
Dec 04 Python
Python多线程通信queue队列用法实例分析
Mar 24 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常用字符串比较函数实例汇总
2014/11/24 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
Python下的subprocess模块的入门指引
2015/04/16 Python
Python tkinter label 更新方法
2018/10/11 Python
python学生信息管理系统(初级版)
2018/10/17 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
Python内置函数property()如何使用
2020/09/01 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
个人教师自我评价范文
2013/12/02 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
关于运动会的口号
2014/06/07 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
素质教育培训心得体会
2016/01/19 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js