python 直接赋值和copy的区别详解


Posted in Python onAugust 07, 2019

直接赋值和copy的区别:

  • 直接赋值:其实就是对象的引用(别名)。
  • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
  • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

例子:

dict1 = {'user':'runoob','num':[1,2,3]} 
dict2 = dict1       # 浅拷贝: 引用对象
dict3 = dict1.copy()  # 深拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用 
# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1) 
# 输出结果
print(dict1)
print(dict2)
print(dict3)

实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。

{'user': 'root', 'num': [2, 3]}
{'user': 'root', 'num': [2, 3]}
{'user': 'runoob', 'num': [2, 3]}

例子:求打印的结果

def extend_list(val, list=[]):
  list.append(val)
  return list
list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a') 
print("list1 = %s" % list1)
print("list2 = %s" % list2)
print("list3 = %s" % list3)

输出结果:

list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中处理时间的几种方法小结
Apr 09 Python
Python正则表达式分组概念与用法详解
Jun 24 Python
django js实现部分页面刷新的示例代码
May 28 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
Python 项目转化为so文件实例
Dec 23 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
python爬虫开发之urllib模块详细使用方法与实例全解
Mar 09 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
python自然语言处理之字典树知识总结
Apr 25 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 Python
python调试工具Birdseye的使用教程
May 25 Python
详解如何用Python实现感知器算法
Jun 18 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 #Python
python的常见矩阵运算(小结)
Aug 07 #Python
python字典的setdefault的巧妙用法
Aug 07 #Python
解决Django中调用keras的模型出现的问题
Aug 07 #Python
python 字典 setdefault()和get()方法比较详解
Aug 07 #Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 #Python
如何用Python来搭建一个简单的推荐系统
Aug 07 #Python
You might like
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
Python入门篇之函数
2014/10/20 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
wxPython实现绘图小例子
2019/11/19 Python
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
汇智创新科技发展有限公司
2015/12/06 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
英语演讲稿范文
2014/01/03 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
2014年药店工作总结
2014/11/20 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis