浅析copy和deepcopy

原创 2018年04月16日 10:21:33

浅拷贝:(copy.copy()),是对象数据中顶层结构的拷贝,如果是引用,则直接拷贝引用,不是引用的直接拷贝;

      例如:import copy

                  a = [1, 2, 3]

                  b = copy.copy(a)

                  c = [a, 123]

                  d = copy.copy(c)

                 此时由于b的是copy a中的数据,新开辟了一块内存区域,所以b跟a是相互独立的,互不影响,修改a中的数据, 

                b不会受影响.而又因为是浅拷贝,对于引用,则直接拷贝引用,所以d内存区域中也保存a的引用和数据123,修                          改a中的数据,d中a的数据应用也会受影响.

深拷贝:(copy.deepcopy()),是对对象所有层次的数据的完全拷贝,      如果是引用,直接拷贝引用对应的所有的数据。

      例如:import copy

                  a = [1, 2, 3]

                  b = copy.deepcopy(a)

                  c = [a, 123]

                  d = copy.deepcopy(c)

                  此处是深拷贝,拷贝引用对应的所有的数据,所以,d和c 中的数据时相互独立的,通过c修改a中的数据,d不会                      受影响。


Python---copy()、deepcopy()与赋值的区别

copy()与deepcopy()之间的主要区别是python对数据的存储方式。 首先直接上结论: —–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改...
  • u011630575
  • u011630575
  • 2017年11月22日 16:04
  • 788

Python中copy和deepcopy中的区别

最近在学习 Python编程,遇到copy和deepcopy感到很困惑,现在针对这两个方法进行区分,一种是浅复制(copy),一种是深度复制(deepcopy)。 首先说一下deepcopy,所谓的深...
  • u014645717
  • u014645717
  • 2016年08月04日 10:31
  • 4052

python copy & deepcopy 区别

[python] view plaincopy import copy      # copy 和 deepcopy 的区别      l1 = [1, 2, 3...
  • haluoluo211
  • haluoluo211
  • 2015年04月09日 14:39
  • 1112

Python中的引用,copy和deepcopy的区别

Python中的引用,个人理解,与C中对地址赋值(仅针对于简单对象,即不可修改的对象,例如int)相似。 简单的例子: a = [1, 2, 3] b = a b[0] = 4 print(a) -...
  • Sternoo
  • Sternoo
  • 2016年07月27日 21:34
  • 1698

漫谈deepcopy(深拷贝)和shallowcopy(浅拷贝)

浅拷贝:只复制当前的对象,对该对象内部的引用(其他类对象作为自己的元素-也叫对其他对象的引用)不能复制(在堆内存中从新创建空间,内容相同,但地址不同)。 深拷贝:对对象内部的引用均复制,是创建一个新的...
  • u010111016
  • u010111016
  • 2016年06月15日 20:23
  • 2983

Python-copy()与deepcopy()区别

最近在实习,boss给布置了一个python的小任务,学习过程中发现copy()和deepcopy()这对好基友实在是有点过分,一开始还相爱着呢,不知道怎么回事就开始相杀了。 搞的博主就有点傻傻分不...
  • qq_32907349
  • qq_32907349
  • 2016年08月12日 13:53
  • 46562

C++中ShallowCopy和DeepCopy的区别

C++中ShallowCopy和DeepCopy的区别
  • menjiawan
  • menjiawan
  • 2016年03月02日 17:23
  • 986

python写代码实现list的deepcopy

python有copy.copy()和copy.deepcopy()这两个函数分别提供浅拷贝和深拷贝的功能。今天突然想自己写代码实现list深拷贝的功能,于是写完了在这里分享一下(本文不涉及list之...
  • jsc723
  • jsc723
  • 2017年03月21日 11:14
  • 965

JAVA深层拷贝 - DeepCopy

方法实现很简单,提供两中方式: 一种是序列化成数据流,前提是所有对象(对象中包含的对象...)都需要继承Serializable接口,如果都继承了那很容易,如果没有继承,而且也不打算修改所有类,可以...
  • isea533
  • isea533
  • 2013年07月19日 08:50
  • 9439

[js] Javascript中的一种深复制实现

本文将给大家详细介绍一种javascript中的深复制实现。 在javascript中,所有的object变量之间的赋值都是传地址的,可能有同学会问哪些是object对象。举例子来说明可能会比较好.....
  • zry656565
  • zry656565
  • 2014年02月14日 23:00
  • 3222
收藏助手
不良信息举报
您举报文章:浅析copy和deepcopy
举报原因:
原因补充:

(最多只允许输入30个字)