码迷,mamicode.com
首页 > 其他好文 > 详细

浅拷贝和深拷贝

时间:2017-06-21 13:41:18      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:end   可变   false   复制   div   之间   并且   类型   深拷贝   

判断内容时候用=号, 判断引用 时候用 is,特例如下:在某个复制到一个正值之间(-5-255)多之间,并没有创建另外一个对象
a =100   a = 10000
b =100   b = 10000
a ==b    a ==b
true       true
a is b     a is b
true        false
---------------------------------------------------------
浅拷贝:拷贝的仅仅是引用而已,并没有另辟一片内存。 面试
a =[22,33,44]
b = a id(a)和id(b)一样
若 a.append(99)
b = [22,33,44,99]
 
深拷贝:另辟一片内存,b指向它,并且有a的内容。 面试
a =[22,33,44]
import copy 导入一个模块
b = copy.deepcopy(a)
id(a)和id(b)不一样
若 a.append(99)
b = [22,33,44]
------------------------------------------------------------------------------------
a = [22,33,44]
b = [55,66]
c = [a,b] [a,b]表示里面是a 的引用,和b 的引用,即地址,引用指向数据。是浅拷贝
e = copy.deepcopy(c) 深拷贝,表示另辟一片空间e,里面是a,b的引用,并且a,b 指向的数据是重新开辟的空间,
并不是原先a d的地址。
----------------------------------------------------------------------------------------------------------
在交互模式python环境中,打copy. 按tab 键,会出现很多功能,其中有个copy.copy ,和deepcopyde 区别是,只识别一层。
e = copy.copy(c) c 中的a, b 还是原来的地址,并不重新创建。。
----------------------------------------------------------------------------------------------------------
a =[1,2,3]
b = [4,5,6]
c = (a,b) 元祖
e = copy.copy(c) copy拷贝的是不可变类型,直接就是浅拷贝。

浅拷贝和深拷贝

标签:end   可变   false   复制   div   之间   并且   类型   深拷贝   

原文地址:http://www.cnblogs.com/lvhonglei-python/p/7058485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!