python 深拷貝與淺拷貝
問題:
在用影刀編寫流程的時候發(fā)現(xiàn),明明只修改人名為“小張”對應(yīng)的字典里面的值,但是所有的人名對應(yīng)的值都被修改了。
原因:
第14行,設(shè)置鍵值對,值對應(yīng)的變量“初始打卡類型字典”是前面流程生成的,還是引用了原來的地方。
用python來復(fù)現(xiàn):
1、如果列表是前面流程生成的,那么要修改值,就都修改了。
aliens = []
new_alien = {"color": "green"}
#往字典里添加5個字典
for num in range(5):
aliens.append(new_alien)
print(aliens)
#修改第一個字典的顏色
aliens[0]["color"] = "red"
print(aliens)
2、如果列表的值本來就寫好了,修改特定的值,后面字典里面值不會被同步修改。文章來源:http://www.zghlxwxcb.cn/news/detail-743180.html
解決方案:
賦值的時候用深拷貝
在從整體的dict_instance中取出單個字典的時候,用深拷貝文章來源地址http://www.zghlxwxcb.cn/news/detail-743180.html
到了這里,關(guān)于【python 深拷貝與淺拷貝】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!