[英]Update dict of dict value
我已将B_cells
值复制到A
词典中。 我正在尝试添加新元素A_cell
但是它也会影响B_cells
props = {'A_cells': {'t4drc_3': ['Path'],
'tb4drc_1': ['Path']},
'B_cells': {'t4drc_3': ['Path'],
'tb4drc_1': ['Path']}
}
props_dict['A_cells'] = props_dict['B_cell'].copy()
#Need to append data for A cells only
def append_in_dict_by_option(self, option, data):
"""Adding data in dictionary"""
for key in props_dict[option].keys():
self.props_dict[option][key].append(data)
所以我只期望A_cells
输出,但它会影响B_cells
。 任何想法
{'A_cells': {'t4drc_3': ['Path', data],
'tb4drc_1': ['Path', data]},
这是因为dict.copy返回dict的浅表副本。 这意味着您将获得一个新的dict实例,但是dict中的元素相同。
props['A_cells'] is props['B_cells'] #returns False
props['A_cells']['tb4drc_1'] is props['B_cells']['tb4drc_1'] #returns True
因此,如果将值附加到props ['A_cells'] ['tb4drc_1'],则更改将反映在props ['B_cells'] ['tb4drc_1']中-它们毕竟包含相同的列表实例。
更新:
要解决此问题,请更改
props_dict['A_cells'] = props_dict['B_cells'].copy()
至
from copy import deepcopy
props_dict['A_cells'] = deepcopy(props_dict['B_cells'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.