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 NumPy库安装使用笔记
May 18 Python
python实现多线程抓取知乎用户
Dec 12 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
Python中一些不为人知的基础技巧总结
May 19 Python
python 使用值来排序一个字典的方法
Nov 16 Python
python 二维数组90度旋转的方法
Jan 28 Python
pycharm新建Vue项目的方法步骤(图文)
Mar 04 Python
python 6.7 编写printTable()函数表格打印(完整代码)
Mar 25 Python
Python如何获取文件指定行的内容
May 27 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
用ldap作为django后端用户登录验证的实现
Dec 07 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
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
jcrop基本参数一览
2013/07/16 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
python实现ftp客户端示例分享
2014/02/17 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
手机配件第一品牌:ZAGG
2017/05/28 全球购物
台湾百利市购物中心:e-Payless
2017/08/16 全球购物
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
高等教育学自荐书范文
2014/02/10 职场文书
团干部培训方案
2014/06/03 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
幼儿园教师求职信
2015/03/20 职场文书
党支部半年考察意见
2015/06/01 职场文书
学校教学管理制度
2015/08/06 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技