python 深拷贝与浅拷贝
问题:
在用影刀编写流程的时候发现,明明只修改人名为“小张”对应的字典里面的值,但是所有的人名对应的值都被修改了。
原因:
第14行,设置键值对,值对应的变量“初始打卡类型字典”是前面流程生成的,还是引用了原来的地方。
用python来复现:
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、如果列表的值本来就写好了,修改特定的值,后面字典里面值不会被同步修改。
文章来源:https://www.toymoban.com/news/detail-743180.html
解决方案:
赋值的时候用深拷贝
在从整体的dict_instance中取出单个字典的时候,用深拷贝
文章来源地址https://www.toymoban.com/news/detail-743180.html
到了这里,关于【python 深拷贝与浅拷贝】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!