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实现的登录和操作开心网脚本分享
Jul 09 Python
朴素贝叶斯算法的python实现方法
Nov 18 Python
以911新闻为例演示Python实现数据可视化的教程
Apr 23 Python
python批量制作雷达图的实现方法
Jul 26 Python
老生常谈Python进阶之装饰器
May 11 Python
Python实现excel转sqlite的方法
Jul 17 Python
Python时间的精准正则匹配方法分析
Aug 17 Python
Python3简单实例计算同花的概率代码
Dec 06 Python
python写入已存在的excel数据实例
May 03 Python
Python中dict和set的用法讲解
Mar 28 Python
根据tensor的名字获取变量的值方式
Jan 04 Python
2021年pycharm的最新安装教程及基本使用图文详解
Apr 03 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
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
php提取微信账单的有效信息
2018/10/01 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
简单介绍django提供的加密算法
2019/12/18 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python argparse模块使用方法解析
2020/02/20 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
C语言编程题
2015/03/09 面试题
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
高二英语教学反思
2014/01/19 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
少儿励志名言(80句)
2019/08/14 职场文书