# 项目开发中,因字典可修改,所以注意拷贝方式
import copy
1. 原字典操作
dict1 = {‘user’: ‘test’, ‘num’: [1, 2, 3]} # 原字典
dict2 = dict1 # 直接赋值
dict3 = dict1.copy() # 浅拷贝,只深拷贝父级目录
dict4 = copy.deepcopy(dict1) # 深拷贝拷贝,父级目录,子级目录全部拷贝(需导入copy模块)
2. 修改原字典
dict1[“user”] = ”
change
” #
修改父级
dict1[“num”].
remove(1)
#
修改子级
print(“更改后的原字典:”, dict1)
print(“赋值字典:”, dict2)
print(“浅拷贝:”, dict3)
print(“深拷贝:”, dict4)
# 输出结果:
更改后的原字典: {‘user’: ‘change’, ‘num’: [2, 3]}
赋值字典: {‘user’: ‘
change
‘, ‘num’: [
2, 3]
} # 赋值(
父/子级
)都改变
浅拷贝: {‘user’: ‘test’, ‘num’:
[2, 3]
} # 浅拷贝只
改变子级
深拷贝: {‘user’: ‘test’, ‘num’: [1, 2, 3]} # 深拷贝字典不改变
3. 分别修改
赋值、浅拷贝、深拷贝字典
–> 查看原字典变化
# 1.改变赋值字典dict2
dict2["user"] = "test2"
print(dict1)
>> {'user': 'test2', 'num': [1, 2, 3]} # 原字典改变
# 2.改变浅拷贝字典dict3
dict3["user"] = 'test33' # 改变父级
dict3["num"].remove(3) # 改变子级
print(dict1)
>> {'user': 'test2', 'num': [1, 2]} # 原字典父级不变,子级随之改变
# 3.改变深拷贝字典dict4
dict4["user"] = "test4"
print(dict1)
>> {'user': 'test2', 'num': [1, 2]} # 原字典完全不变
总结:
①原字典
与
赋值
紧密相连;一方改变,对方随之改变!
②
原字典
与
浅拷贝
父级各自独立,子级紧密相连;一方改变,对方父级不变,子级随之改变!
③
原字典
与
深拷贝
深拷贝独立门户,从此与原字典无关!