Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。 

  1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。通俗点就是部分拷贝
  2. copy.deepcopy 深拷贝 拷贝对象及其子对象,通俗点就是完全拷贝

 1 = ["1","2","3",['a','b']]
 2 = a #引用
 3 
 4 c=copy.copy(a)#浅拷贝
 5 
 6 = copy.deepcopy(a) #深度拷贝
 7 
 8 a.remove("1")
 9 a[2].append('c')
10 
11 print a
12 print b
13 print c
14 print c
15 
16 运行结果:
17 ['2''3', ['a''b''c']]
18 ['2''3', ['a''b''c']]
19 ['1''2''3', ['a''b''c']]
20 ['1''2''3', ['a''b']]   

我们可以看到,与c语言不同的是,=后不是两个不同的值,而是一个引用的值。要注意。。

作者:xiaoxia

出处:http://cnblogs.com/xiaoxia

我的淘宝:http://shop62115161.taobao.com/

本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。

原文地址:https://www.cnblogs.com/xiaoxia/p/1789041.html