如何更改嵌套字典的键

Syl*_*ain 1 python dictionary nested

如何更改嵌套字典的键?

例如,我如何将data1'更改"yes""no"以下内容:

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.
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

fal*_*tru 6

要更改单个词典,只需引用您要更改的词典即可。

>>> d = {'data1': {'yes': 'abc'}, 'data2': {'yes': 'xyz'}}
>>> d['data1']['no'] = d['data1'].pop('yes')
>>> d
{'data2': {'yes': 'xyz'}, 'data1': {'no': 'abc'}}
Run Code Online (Sandbox Code Playgroud)

如果你想更改yes所有字典中的条目,你必须循环dict.values.

>>> 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'}}
Run Code Online (Sandbox Code Playgroud)