python基础理论(三)-- copy & deepcopy

模块名:copy

隶属于:python标准库

py版本:1.4及以后

包含函数:copy()和deepcopy()

用  途:复制现有的对象

1、copy()--- 浅拷贝

其中填充原对象的引用,建立list对象的一个浅拷贝副本时,会构造一个新的list,并将原对象的元素追加到这个list。

deepcopy()--- 深拷贝

其中填充原对象的浅拷贝副本,对list对象进行深拷贝,会copy原列表中的元素,然后将副本添加到新列表

2、一句话区别:

浅拷贝只拷贝父对象,不会拷贝对象内部的子对象;

深拷贝会同时拷贝父对象及其子对象。

#导入copy模块
>>> import copy
#list a
>>> a = [1, 2, 3, 4, ['a', 'b']]
#list b:将a赋值给b(传对象的引用)
>>> b = a
#list c:将a浅拷贝给c
>>> c = copy.copy(a)
#list d: 将a深拷贝给d
>>> d = copy.deepcopy(a)
#对list a追加元素 5
>>> a.append(5)
#对list a的子元素a[4]即['a','b']追加'c'
>>> a[4].append("c")

#操作完之后的list a、b、c、d分别为:
>>> a
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> b
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> c
[1, 2, 3, 4, ['a', 'b', 'c']]
>>> d
[1, 2, 3, 4, ['a', 'b']]
>>> 
#个人理解:拷贝越深,新产生的对象独立性越强,即受原对象改变的影响越小

 

posted @ 2013-04-10 10:44  thinbottle  阅读(190)  评论(0编辑  收藏  举报