在嵌套的dict python中附加一个dict

时间:2016-04-06 20:03:51

标签: python dictionary

我想要一本附有新词典的词典。

t = {}
t['bush_mod']={} # Toplevel
ana1 = {}
ana1['ana1_lin_001']={}
t['bush_mod'] = ana1 # Add below Toplevel

ana2 = {}
ana2['ana2_lin_001'] = {}
ana2['ana2_lin_002'] = {}

t['bush_mod'] = ana2 # Add below Toplevel

当我添加ana2时,字典t被覆盖,我不想要。

OUT: {'bush_mod': {'ana2_lin_001': {}, 'ana2_lin_002': {}}}

我希望将ana2作为Toplevel下面的第二个dict(附加)。

OUT: {'bush_mod': {'ana1_lin_001': {}},{'ana2_lin_001': {}, 'ana2_lin_002': {}}}

如果有人可以帮我解释语法,那将会非常有用。

提前致谢!

2 个答案:

答案 0 :(得分:1)

如果您想坚持使用嵌套字典,我认为dict.update可能是一个选项:

t = {}
t['bush_mod']={}

ana1 = {}
ana1['ana1_lin_001']={}

ana2 = {}
ana2['ana2_lin_001'] = {}
ana2['ana2_lin_002'] = {}

t['bush_mod'].update(ana1)
t['bush_mod'].update(ana2)

这样t是:

{'bush_mod': {'ana1_lin_001': {}, 'ana2_lin_001': {}, 'ana2_lin_002': {}}}

dict.update此处将ana1ana2的键值对添加到字典t['bush_mod中``

答案 1 :(得分:-2)

你需要为字典中的每个元素使用不同的键...它会覆盖,因为你曾两次使用'bush_mod'......

你需要让t ['bush_mod'] = []然后在那个列表中添加东西。

t['bush_mod'] = []
t['bush_mod'].append(ana1)
t['bush_mod'].append(ana2)