码迷,mamicode.com
首页 > 编程语言 > 详细

python 字典深复制和浅复制

时间:2017-05-09 00:57:58      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:结果   对象   输出   dict   end   deepcopy   user   copy   move   

#!/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‘}

 

python 字典深复制和浅复制

标签:结果   对象   输出   dict   end   deepcopy   user   copy   move   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!