如何更改嵌套字典的键

时间:2014-05-18 15:42:15

标签: python-3.x dictionary nested

如何更改一个嵌套字典的键?

例如,如何更改数据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.

任何帮助将不胜感激!

1 个答案:

答案 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'}}