2018-09-27

copy的问题


copy.copy返回浅copy

copy.deepcopy返回深copy

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

结果:

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

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

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

你可能感兴趣的:(2018-09-27)