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中encode()方法的使用简介
May 18 Python
Ubuntu下安装PyV8
Mar 13 Python
Python ldap实现登录实例代码
Sep 30 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
PyCharm安装Markdown插件的两种方法
Jun 24 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
Python sqlite3查询操作过程解析
Feb 20 Python
Python中os模块功能与用法详解
Feb 26 Python
python 第三方库paramiko的常用方式
Feb 20 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
Sep 25 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进行MySQL删除记录操作代码
2008/06/07 PHP
PHP伪静态写法附代码
2008/06/20 PHP
php adodb操作mysql数据库
2009/03/19 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
如何实现JS函数的重载
2006/09/22 Javascript
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
js实现常用排序算法
2016/08/09 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
python实现文件快照加密保护的方法
2015/06/30 Python
python版本单链表实现代码
2018/09/28 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
室内设计实习自我鉴定
2013/09/25 职场文书
会计实习生工作总结的自我评价
2013/10/07 职场文书
大专生简历的自我评价
2013/11/26 职场文书
应聘收银员个人的求职信
2013/11/30 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
公务员个人考察材料
2014/12/23 职场文书
户外活动总结
2015/02/04 职场文书
学校教师培训工作总结
2015/10/14 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android