python - Python中的嵌套字典并更新键中的特定键
问题描述
我正在尝试更新 python 中的特定键,但似乎所有相似的键也都更新了。
inner_dict = {'grade': None, 'age': None, 'genre': None}
outer_dict = {'Sam': inner_dict, 'Joe': inner_dict, 'Some' : inner_dict}
outer_dict['Sam']['age'] = 10
我希望将其作为输出:
{'Sam': {'grade': None, 'age': 10, 'genre': None}, 'Joe': {'grade': None, 'age': None, 'genre': None}, '一些':{'等级':无,'年龄':无,'流派':无}}
但相反,我有这个:
{'Sam': {'grade': None, 'age': 10, 'genre': None}, 'Joe': {'grade': None, 'age': 10, 'genre': None}, '一些':{'等级':无,'年龄':10,'流派':无}}
其中所有孩子的年龄都更新为 10
解决方案
您必须复制该对象,否则您只有一个具有 3 个引用的对象。
所以解决方案是:
outer_dict = {'Sam': inner_dict.copy(), 'Joe': inner_dict.copy(), 'Some' : inner_dict.copy()}
推荐阅读
- reactjs - React Router Dom 在网站加载时更改 URL
- jboss - JBPM 7.43:如何动态处理 ListBox 中选定的更改项?
- javascript - Next.js 在 next.config.js 中动态重定向
- excel - 如何使用 VBA 将指定日期的 Outlook 中的 HTML 表格导入 Excel?
- spring-boot - 带有 vaadin 的 spring boot 需要几分钟才能启动
- android - 闭源项目从 jcenter 迁移到 maven Central
- c - 如何调试卡住的线程?
- php - 在电子邮件中添加 IP 资源使用过多
- node.js - AWS ElasticBeanstalk 和 PM2 集成
- spring-batch - 无法自动接线。找不到“JobRepositoryTestUtils”类型的 bean