---浅拷贝、深拷贝-------
#使用场景:面试,工作中要区分深浅拷贝的使用
#6.1浅拷贝:
#浅拷贝对第一层目录做的为深拷贝,如果第一层目录可变的情况下,则修改拷贝后的值,原始值不发生变化
#浅拷贝只拷贝第一层目录,其他嵌套目录为引用,如果嵌套数据类型可变的情况下,对靠拷贝后嵌套的值进行改变则原始值也进行改变
# 语法:dict.copy()
# 实例:
test_dict={"key1":"111","key2":"222","key3":[1,2,3,"hello"]}
new_dict=test_dict.copy()
print("浅拷贝前的原始值:",test_dict,id(test_dict))
print("浅拷贝拷贝后的值:",new_dict,id(new_dict))
new_dict["key3"][1]=100 #进行修改浅拷贝后的值
print("========="*20)
print("浅拷贝后修改拷贝后的值输出的原始值:",test_dict,id(test_dict))
print("浅拷贝后修改拷贝后的值输出的浅拷贝的值:",new_dict,id(new_dict))
print("******"*20)
#6.2深拷贝:
#深拷贝对所有目录做深拷贝,全部拷贝
#深拷贝,如果嵌套数据类型可变的情况下,对靠拷贝后嵌套的值进行改变则原始值不进行改变
# 语法:copy.deepcopy()
# 实例:
import copy
test_dict={"key1":"111","key2":"222","key3":[1,2,3,"hello"]}
new_dict=copy.deepcopy(test_dict)
print("深拷贝前的原始值:",test_dict,id(test_dict))
print("深拷贝拷贝后的值:",new_dict,id(new_dict))
new_dict["key3"][1]=100 #进行修改浅拷贝后的值
print("******"*20)
print("深拷贝后修改拷贝后的值输出的原始值:",test_dict,id(test_dict))
print("深拷贝后修改拷贝后的值输出的浅拷贝的值:",new_dict,id(new_dict))