copy的问题

copy.copy返回浅copy

copy.deepcopy返回深copy

1 from copy import deepcopy
2 x = {'name':'Ivan','num':[1,2,3]}
3 y = x.copy()
4 z = deepcopy(x)
5 x['name'] = 'Lily'
6 x['num'].insert(1,3)
7 print("i'm x:",x)
8 print("i'm y:",y)
9 print("i'm z:",z)

结果:

1 i'm x: {'name': 'Lily', 'num': [1, 3, 2, 3]}
2 i'm y: {'name': 'Ivan', 'num': [1, 3, 2, 3]}
3 i'm z: {'name': 'Ivan', 'num': [1, 2, 3]}

通过实例结果显而易见,深copy就相当于windows里面的复制粘贴,两个是完全独立的,各自修改都不会影响对方;对于浅copy,x修改了name值,但是y依旧是原值,说明浅copy替换值时,两个字典不受影响,而当进行修改值时(比如说增加或删减),y字典就受到原字典的影响,会跟原字典进行一样的操作。

 

这是个人理解,如有不对,请不吝赐教。

posted @ 2018-07-03 11:45  iqunqunqun  阅读(141)  评论(0编辑  收藏  举报