嵌套字典操作



我在这个结构中嵌套了一个字典:

dictionary = {chapter: {section: {sub_section: {'a':{...}, 'b':{...}, 'c':{...}, 'd':{...}, 'e':{...}}}}}

假设chapter, section, sub_section是列表变量的值

对于任何可能的组合,键值'a,b,c,d,e'都是相同的。

我希望'c'字典包含'c','d','e'字典。

如何将字典转换为新字典?

new_dict = {chapter: {section: {sub_section: {'a':{...}, 'b':{...}, 'c':{ 'c':{...}, 'd':{...}, 'e'={...}}}}}}

如果可能的话,更少基于标签或名称,更多基于索引或级别的方法是值得赞赏的。

复制整个嵌套字典。然后将c, d, e元素复制到新字典的c元素中,并删除不需要的de元素。

from copy import deepcopy
new_dict = deepcopy(dictionary)
ss = new_dict['chapter']['section']['subsection']
ss['c'] = {key: ss[key] for key in ['c', 'd', 'e']}
for key in ['d', 'e']:
del ss[key]

你说你不希望这是基于标签的,但是我没有看到任何逻辑可以用来选择要移动的元素,而不只是列出标签。

最新更新