python中的拷贝
1.赋值: 只是复制了新对象的引用,不会开辟新的内存空间。
2.浅拷贝: 创建新对象,其内容是原对象的引用。
浅拷贝有三种形式:切片操作,工厂函数,copy模块中的copy函数。
如: lst = [1,2,3,[4,5]]
切片操作:lst1 = lst[:] 或者 lst1 = [each for each in lst] 要注意:list1=lst 和list1=lst[:]的区别
工厂函数:lst1 = list(lst)
copy函数:lst1 = copy.copy(lst)
浅拷贝之所以称为浅拷贝,是它仅仅只拷贝了一层,在lst中有一个嵌套的list[4,5],如果我们修改了它,情况就不一样了。
3.深拷贝:只有一种形式,copy模块中的deepcopy函数。
和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。
深拷贝出来的对象是一个全新的对象,不再与原来的对象有任何关联。
import copy a = [1, 2, 3, 4, ['a', 'b']] #定义一个列表a b = a #赋值 c = copy.copy(a) #浅拷贝 # c = a[:] d = copy.deepcopy(a) #深拷贝a.append(5) print(a) #[1, 2, 3, 4, ['a', 'b'], 5] #a添加一个元素5 print(b) #[1, 2, 3, 4, ['a', 'b'], 5] #b跟着添加一个元素5 print(c) #[1, 2, 3, 4, ['a', 'b']] #c保持不变 print(d) #[1, 2, 3, 4, ['a', 'b']] #d保持不变a[4].append('c') print(a) #[1, 2, 3, 4, ['a', 'b', 'c'], 5] #a中的list(即a[4])添加一个元素c print(b) #[1, 2, 3, 4, ['a', 'b', 'c'], 5] #b跟着添加一个元素c print(c) #[1, 2, 3, 4, ['a', 'b', 'c']] #c跟着添加一个元素c print(d) #[1, 2, 3, 4, ['a', 'b']] #d保持不变#说明如下: #1.外层添加元素时, 浅拷贝c不会随原列表a变化而变化;内层list添加元素时,浅拷贝c才会变化。 #2.无论原列表a如何变化,深拷贝d都保持不变。 #3.赋值对象随着原列表一起变化
参考:
(1).https://www.cnblogs.com/huangbiquan/p/7795152.html (Python中的赋值(复制)、浅拷贝、深拷贝之间的区别
(2).https://www.cnblogs.com/xueli/p/4952063.html(python的复制,深拷贝和浅拷贝的区别)
python中的拷贝相关推荐
- python copy函数例子,Python中的拷贝详解
在之前的一篇文章中,我们解释了一下为什么下面的两种方式是不同的: bucket = [[] for _ in range(len(nums)+1)] bucket1 = [[]] * (len(num ...
- python中如何拷贝一个对象_python题目-----Python里面如何拷贝一个对象?
在Python中,无论是对象赋值,作为为参数传递,作为函数返回值,都是引用传递的.如果需要拷贝对象,需要使用标准库中的copy模块(import copy). 1.浅拷贝 : 使用copy.copy, ...
- Python中深浅拷贝的案例教程
在本节中,您将通过运行Python中的浅拷贝和深拷贝实例来理解copy模块创造副本的不同. 在Python中复制对象 在Python中,我们使用=运算符来创建对象的副本.您可能会认为这会创建一个新对象 ...
- Python中如何拷贝一个对象?(赋值、深拷贝、浅拷贝的区别)
https://blog.csdn.net/xinyuski/article/details/84238688
- python中copy怎么用_python中的拷贝copy模块怎么使用?
原标题:python中的拷贝copy模块怎么使用? 许多人都见过这样一个游戏,让10个人通过耳边的悄悄话逐个传递一个信息,我们会发现在传递的过程中信息不断被修改,到了最后已经面目全非.今天小编就向大家 ...
- python的深浅拷贝与linux中的软硬链接
记录一下我对python的深浅拷贝以及linux中的软硬链接的理解 放在开头 软硬连接 python中对象的深浅拷贝 浅拷贝 深拷贝 copy.copy()对可变和不可变对象的不同 总结 放在开头 在 ...
- Python的深浅拷贝讲解!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:皮钱超,厦门大学,Datawhale原创作者 本文约3000字,建 ...
- 【Python基础】Python的深浅拷贝讲解
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 在很多语言中都存在深浅拷贝两种拷贝数据的方式,Python中 ...
- python中常见的流程_Python面试中最常见的25个问题-结束
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 13)Python中的lambda表达式是什么? lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数. 14)为什么Python中的lambda ...
最新文章
- 玩转spring mvc入参自定义类型转换和格式化
- Spring Cloud Alibaba到底坑不坑?反正是解放了部分使用的繁琐!
- Django框架(25.Django中的模板继承以及HTML转义)
- 简单六步,用数据说服你的听众
- 查看一个结构体成员的方法
- phpstrom 本地编辑玩文件 自动临时映射到远程服务器
- 荣耀30S首发新一代神U麒麟820 5G:GeekBench得分媲美骁龙855
- 枚举类型转换成字符串
- 阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准
- Bolt界面引擎QuickStart: SDK,教程和开发环境
- 活灵活现用Git-技巧篇
- VS2010的项目配置属性中文对照
- vue图片压缩与批量上传
- 微积分-求导必背公式
- 华为RH2288 V3服务器新加硬盘不识别
- 明辰智航网络一点通网络性能测试仪可以做什么
- 【3】Kubernetes资源管理
- 自用的一些平时记录. 时不时更新
- H 指数 (citations[index] > h 才能符合条件)
- 三网话费接口API 文档
热门文章
- 华为mate30怎么申请鸿蒙内测,华为新系统启动内测,mate30系列尝鲜,网友:羡慕...
- io流技术java_技术文章-java中的IO流
- ubuntu升级python_Ubuntu 升级python3为更高版本【已实测】
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波17 - 锐化高通滤波器 - 梯度图像(罗伯特,Sobel算子)
- 小程序引用其他页面js_来聊聊小程序页面之间如何通信
- 使用MapReduce将HDFS数据导入Mysql
- day38 19-Spring整合web开发
- linux中php配置
- sqlserver2008r2安装
- C#网络编程(异步传输字符串) - Part.3[转自JimmyZhang博客]