import copy
dict1 = {
"1" : "1",
"2": "2",
"user":"吉米",
"num":[
1,2,3,4
]
}
dict2 = dict1 #直接赋值
dict3 = dict1.copy() #浅拷贝
dict4 = copy.deepcopy(dict1) #深拷贝
print(dict1)
print(dict2)
print(dict3)
print(dict4)
dict1["1"] = 34
dict1[2] = "somethings"
dict1["num"].remove(1)
print("修改后的值",dict1)
print("直接赋值",dict2)
print("浅拷贝",dict3)
print("深拷贝",dict4)
输出内容打印如下:

总结
1.直接赋值是根据变量的值变动而变动
2.浅拷贝会拷贝父级的目录(根目录)的数据,但字典的子级列表num元素发生了改变。
3.深拷贝递归拷贝所有目录的数据,完全在另外内存中复制了一份原字典,所以对dict1的修改不会影响dict4的数据
本文探讨了Python字典的深拷贝(dict.deepcopy())和浅拷贝(dict.copy())的区别。直接赋值会导致变量共享同一内存数据。浅拷贝仅拷贝父级字典,子级列表的变动仍会影响源字典。深拷贝则会递归创建字典的完整副本,确保修改副本不会影响原始字典。
3618

被折叠的 条评论
为什么被折叠?



