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的内建模块collections的教程
Apr 28 Python
深入理解python函数递归和生成器
Jun 06 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
python实现接口并发测试脚本
Jun 25 Python
django框架ModelForm组件用法详解
Dec 11 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
Python绘图之柱形图绘制详解
Jul 28 Python
如何真正的了解python装饰器
Aug 14 Python
Python filter过滤器原理及实例应用
Aug 18 Python
Django nginx配置实现过程详解
Sep 10 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 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 session有效期问题
2009/04/26 PHP
php Memcache 中实现消息队列
2009/11/24 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
python 远程统计文件代码分享
2015/05/14 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
python如何停止递归
2020/09/09 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
营业员演讲稿
2013/12/30 职场文书
打造完美自荐信
2014/01/24 职场文书
军训考核自我鉴定
2014/02/13 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis