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 29 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
用python处理图片实现图像中的像素访问
May 04 Python
Django中使用Celery的教程详解
Aug 24 Python
Tesserocr库的正确安装方式
Oct 19 Python
python aiohttp的使用详解
Jun 20 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
Python threading的使用方法解析
Aug 28 Python
python实现对列表中的元素进行倒序打印
Nov 23 Python
根据tensor的名字获取变量的值方式
Jan 04 Python
基于python爬取梨视频实现过程解析
Nov 09 Python
浅谈Python中的正则表达式
Jun 28 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二维数组排序简单实现方法
2016/02/14 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
Python使用MD5加密字符串示例
2014/08/22 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
python3 logging日志封装实例
2020/04/08 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
德国苹果商店:MacTrade
2020/05/18 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
servlet面试题
2012/08/20 面试题
酒店销售经理岗位职责
2014/01/31 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
大学活动总结模板
2014/07/10 职场文书
解除劳动合同协议书
2014/09/17 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
飞越疯人院观后感
2015/06/09 职场文书
热爱劳动主题班会
2015/08/14 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
小程序实现筛子抽奖
2021/05/26 Javascript
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python