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中的拷贝相关推荐

  1. python copy函数例子,Python中的拷贝详解

    在之前的一篇文章中,我们解释了一下为什么下面的两种方式是不同的: bucket = [[] for _ in range(len(nums)+1)] bucket1 = [[]] * (len(num ...

  2. python中如何拷贝一个对象_python题目-----Python里面如何拷贝一个对象?

    在Python中,无论是对象赋值,作为为参数传递,作为函数返回值,都是引用传递的.如果需要拷贝对象,需要使用标准库中的copy模块(import copy). 1.浅拷贝 : 使用copy.copy, ...

  3. Python中深浅拷贝的案例教程

    在本节中,您将通过运行Python中的浅拷贝和深拷贝实例来理解copy模块创造副本的不同. 在Python中复制对象 在Python中,我们使用=运算符来创建对象的副本.您可能会认为这会创建一个新对象 ...

  4. Python中如何拷贝一个对象?(赋值、深拷贝、浅拷贝的区别)

    https://blog.csdn.net/xinyuski/article/details/84238688

  5. python中copy怎么用_python中的拷贝copy模块怎么使用?

    原标题:python中的拷贝copy模块怎么使用? 许多人都见过这样一个游戏,让10个人通过耳边的悄悄话逐个传递一个信息,我们会发现在传递的过程中信息不断被修改,到了最后已经面目全非.今天小编就向大家 ...

  6. python的深浅拷贝与linux中的软硬链接

    记录一下我对python的深浅拷贝以及linux中的软硬链接的理解 放在开头 软硬连接 python中对象的深浅拷贝 浅拷贝 深拷贝 copy.copy()对可变和不可变对象的不同 总结 放在开头 在 ...

  7. Python的深浅拷贝讲解!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:皮钱超,厦门大学,Datawhale原创作者 本文约3000字,建 ...

  8. 【Python基础】Python的深浅拷贝讲解

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 在很多语言中都存在深浅拷贝两种拷贝数据的方式,Python中 ...

  9. python中常见的流程_Python面试中最常见的25个问题-结束

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 13)Python中的lambda表达式是什么? lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数. 14)为什么Python中的lambda ...

最新文章

  1. 玩转spring mvc入参自定义类型转换和格式化
  2. Spring Cloud Alibaba到底坑不坑?反正是解放了部分使用的繁琐!
  3. Django框架(25.Django中的模板继承以及HTML转义)
  4. 简单六步,用数据说服你的听众
  5. 查看一个结构体成员的方法
  6. phpstrom 本地编辑玩文件 自动临时映射到远程服务器
  7. 荣耀30S首发新一代神U麒麟820 5G:GeekBench得分媲美骁龙855
  8. 枚举类型转换成字符串
  9. 阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准
  10. Bolt界面引擎QuickStart: SDK,教程和开发环境
  11. 活灵活现用Git-技巧篇
  12. VS2010的项目配置属性中文对照
  13. vue图片压缩与批量上传
  14. 微积分-求导必背公式
  15. 华为RH2288 V3服务器新加硬盘不识别
  16. 明辰智航网络一点通网络性能测试仪可以做什么
  17. 【3】Kubernetes资源管理
  18. 自用的一些平时记录. 时不时更新
  19. H 指数 (citations[index] > h 才能符合条件)
  20. 三网话费接口API 文档

热门文章

  1. 华为mate30怎么申请鸿蒙内测,华为新系统启动内测,mate30系列尝鲜,网友:羡慕...
  2. io流技术java_技术文章-java中的IO流
  3. ubuntu升级python_Ubuntu 升级python3为更高版本【已实测】
  4. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波17 - 锐化高通滤波器 - 梯度图像(罗伯特,Sobel算子)
  5. 小程序引用其他页面js_来聊聊小程序页面之间如何通信
  6. 使用MapReduce将HDFS数据导入Mysql
  7. day38 19-Spring整合web开发
  8. linux中php配置
  9. sqlserver2008r2安装
  10. C#网络编程(异步传输字符串) - Part.3[转自JimmyZhang博客]