Python里的拷贝

20 import copy
21 a = [1, 2, 3, 4, ['a', 'b']]  #原始对象
22  
23 b = a  #赋值,传对象的引用
24 c = copy.copy(a)  #对象拷贝,浅拷贝
25 d = copy.deepcopy(a)  #对象拷贝,深拷贝
26  
27 a.append(5)  #修改对象a
28 a[4].append('c')  #修改对象a中的['a', 'b']数组对象
29  
30 print 'a = ', a
31 print 'b = ', b
32 print 'c = ', c
33 print 'd = ', d
34  
35 输出结果:
36 a =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
37 b =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
38 c =  [1, 2, 3, 4, ['a', 'b', 'c']]
39 d =  [1, 2, 3, 4, ['a', 'b']]


>>> a = [1, 2]
>>> b = a
>>> id(a)
139935018544808
>>> id(b)
139935018544808
>>> a.append(3)
>>> a
[1, 2, 3]
>>> id(a)
139935018544808
>>> id(b)       # 注意a与b始终指向同一个地址
139935018544808
>>> a = 1
>>> b = a
>>> id(a) 
13033816
>>> id(b)   # 注意两个变量的id值相同
13033816
>>> a = 2
>>> id(a)   # 注意a的id值已经变了
13033792
>>> id(b)   # b的id值依旧
13033816

 参考网址:

https://www.cnblogs.com/blaomao/p/7239203.html

  

posted @ 2018-01-02 11:25  雷大侠!  阅读(181)  评论(0编辑  收藏  举报