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生成随机数的方法
Jan 14 Python
Python的标准模块包json详解
Mar 13 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
PyCharm代码格式调整方法
May 23 Python
python3实现多线程聊天室
Dec 12 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
Python求离散序列导数的示例
Jul 10 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
python实现根据文件格式分类
Oct 31 Python
sublime3之内网安装python插件Anaconda的流程
Nov 10 Python
selenium自动化测试入门实战
Dec 21 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将向Java靠拢
2006/10/09 PHP
用PHP实现文件上传二法
2006/10/09 PHP
PHP函数utf8转gb2312编码
2006/12/21 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
python实现代理服务功能实例
2013/11/15 Python
Python 移动光标位置的方法
2019/01/20 Python
python如何随机生成高强度密码
2020/08/19 Python
2015新年联欢晚会开场白
2014/12/14 职场文书
员工自我评价范文
2015/03/11 职场文书
第一节英语课开场白
2015/06/01 职场文书
PL350与SW11的比较
2021/04/22 无线电
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
详解Flask开发技巧之异常处理
2021/06/15 Python
python字典进行运算原理及实例分享
2021/08/02 Python