import copy
#原字典
dict1 = {1:1,'user': 'test', 'num': [1, 2, 3]};
#直接赋值
dict2 = dict1;
dict3 = dict1.copy();
dict4 = copy.deepcopy(dict1);
dict1[1] = 11;
dict1['user'] = '123';
dict1['num'].remove(1);
print('------------------------------------');
print('原字典修改后:',dict1);
print('直接赋值:',dict2);
print('浅拷贝:',dict3);
print('深拷贝:',dict4);
print('------------------------------------');
输出:
原字典修改后:{1:11,'user': '123', 'num': [2, 3]}
直接赋值:{1:11,'user': '123', 'num': [2, 3]}
浅拷贝:{1:1,'user': 'test', 'num': [2, 3]}
深拷贝:{1:1,'user': 'test', 'num': [1, 2, 3]}
可看出:
深拷贝中,全变了,与原字典无关。
赋值中,字典只是引用了原字典,所以象极C++的指针
浅拷贝中,可变的地址==原字典可变的地址
引之:[Python]字典的赋值、浅拷贝、深拷贝 - Alimy - 博客园



