python字典浅复制_python 字典深复制和浅复制

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import copy

dict1 = {‘user‘: ‘vickey‘, ‘num‘: [1, 2, 3],‘age‘:{‘a‘:‘1‘,‘b‘:‘2‘}}

dict2 = dict1 # 对原始数据的任何操作都会影响该复制

# 先进行数据的浅复制和深复制操作

dict3 = dict1.copy() # 浅复制: 一级为引用对象,二级为拷贝;原始数据的二级目录改变了,浅复制的数据的二级目录也会改变,但一级目录不变

dict4 = copy.deepcopy(dict1) # 深复制:深拷贝父对象(一级目录),子对象(二级目录)是引用,非拷贝;简单地说就是与最原始的的数据时完全一致的

# 修改 data 数据

dict1[‘user‘] = ‘root‘

dict1[‘num‘].remove(3)

dict1[‘num‘].append(6)

dict1[‘age‘][‘a‘] = ‘111‘

# 对数据操作后再复制,则深复制和浅复制无差别了,都是更改后的数据

# dict3 = dict1.copy()

# dict4 = copy.deepcopy(dict1)

# 输出结果

print(dict1)

print(dict2)

print(dict3)

print(dict4)

打印结果

{‘age‘: {‘a‘: ‘111‘, ‘b‘: ‘2‘}, ‘num‘: [1, 2, 6], ‘user‘: ‘root‘}

{‘age‘: {‘a‘: ‘111‘, ‘b‘: ‘2‘}, ‘num‘: [1, 2, 6], ‘user‘: ‘root‘}

{‘age‘: {‘a‘: ‘111‘, ‘b‘: ‘2‘}, ‘num‘: [1, 2, 6], ‘user‘: ‘vickey‘}

{‘age‘: {‘a‘: ‘1‘, ‘b‘: ‘2‘}, ‘num‘: [1, 2, 3], ‘user‘: ‘vickey‘}

原文:http://www.cnblogs.com/vickey-wu/p/6828489.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值