[python]字典的直接赋值、浅拷贝和深拷贝解析

1、赋值引用

b = a: a 和 b 都指向同一个对象。

2、浅拷贝

b = a.copy():  a 和 b父对象是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。

3、深拷贝

b = copy.deepcopy(a): 完全拷贝了父对象及其子对象,a 和 b 的父对象及其子对象,两者都是完全独立的。

实例

import copy
c0 = { '1' : 1 , 1 : [1,2]}
c1 = c0
c2 = copy.copy(c0)
c3 = copy.deepcopy(c0)
c4 = c0.copy()  #返回一个浅拷贝
c0['1'] = 5
c0['4'] = 1
c0[1].append(4)
print("c0",c0) #c0 {'1': 5, 1: [1, 2, 4], '4': 1} print("c1",c1) #c1 {'1': 5, 1: [1, 2, 4], '4': 1} print("c2",c2) #c2 {'1': 1, 1: [1, 2, 4]} print("c3",c3) #c3 {'1': 1, 1: [1, 2]} print("c4",c4) #c4 {'1': 1, 1: [1, 2, 4]}

 

参考:

https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html

posted @ 2019-05-07 15:53  faithfu  阅读(13408)  评论(0编辑  收藏  举报