如何更改一个嵌套字典的键?
例如,如何更改数据1"是"进入"无"下面:
dc = {'data1': {'yes': 'abc'}, 'data2': {'yes': 'xyz'}}
CODES to get the result below:
dc = {'data1': {'no': 'abc'}, 'data2': {'yes': 'xyz'}}
dc[data1] = 'no' won't work.
任何帮助将不胜感激!
答案 0 :(得分:4)
对于每个嵌套字典,弹出yes
条目,添加no
条目。
>>> d = {'data1': {'yes': 'abc'}, 'data2': {'yes': 'xyz'}}
>>> for nested_d in d.values():
... nested_d['no'] = nested_d.pop('yes')
...
>>> d
{'data1': {'no': 'abc'}, 'data2': {'no': 'xyz'}}
顺便说一句,不要使用dict
作为变量名。它会影响内置函数/类型dict
。
更新根据问题更改:
要更改单个字典,而不是循环外部字典值,只需引用要更改的字典。
>>> d = {'data1': {'yes': 'abc'}, 'data2': {'yes': 'xyz'}}
>>> d['data1']['no'] = d['data1'].pop('yes')
>>> d
{'data2': {'yes': 'xyz'}, 'data1': {'no': 'abc'}}