【python 深拷贝与浅拷贝】

python 深拷贝与浅拷贝

问题:

在用影刀编写流程的时候发现,明明只修改人名为"小张"对应的字典里面的值,但是所有的人名对应的值都被修改了。

原因:

第14行,设置键值对,值对应的变量"初始打卡类型字典"是前面流程生成的,还是引用了原来的地方。

用python来复现:

1、如果列表是前面流程生成的,那么要修改值,就都修改了。

python 复制代码
aliens = []
new_alien = {"color": "green"}
#往字典里添加5个字典
for num in range(5):
    aliens.append(new_alien)
print(aliens)
#修改第一个字典的颜色
aliens[0]["color"] = "red"
print(aliens)

2、如果列表的值本来就写好了,修改特定的值,后面字典里面值不会被同步修改。

解决方案:

赋值的时候用深拷贝

在从整体的dict_instance中取出单个字典的时候,用深拷贝

相关推荐
金銀銅鐵2 天前
[Python] 扩展欧几里得算法
python·数学·算法
Duckdblab2 天前
DuckDB 性能调优终极指南:打造闪电般的分析体验
python
带派擂总2 天前
Python全栈开发精华版最全合集(包含各种面试题) Day24_异常和错误
python
金銀銅鐵2 天前
n^5 和 n 的个位数是否总相等?
python·数学
aqi002 天前
15天学会AI应用开发(九)利用Chroma持久化向量数据
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵2 天前
借助 Pygame 探索最大公约数的规律
python·数学·游戏
ServBay3 天前
9 个 Python 第三方库推荐,不用 AI 都好像多出一个团队
后端·python
用户8356290780513 天前
如何使用 Python 添加和管理 Excel 批注(完整示例)
后端·python
用户8356290780513 天前
使用 Python 管理 Excel 工作表:创建、复制、删除与重命名
后端·python