如何在数组中附加下一个dict

时间:2018-05-14 20:17:10

标签: python dictionary

我通过从设备中获取值来构建dict。 我想继续添加新的字典到" c"通过附加新项目。 如何在数组中附加新的dict:

dict1 = {
'a': 1,
'b': 2,
'c': [{'aa': 11, 'bb': 22}]}
newvalue = {'aa': 111, 'bb': 222}
dict1['c'] = dict1['c'] + newvalue

End results:
dict1 = {
'a': 1,
'b': 2,
'c': [{'aa': 11, 'bb': 22},{'aa': 111, 'bb': 222}}

如何使用forloop附加?

2 个答案:

答案 0 :(得分:2)

这个问题的诀窍是理解你的对象类型。

让我们尝试找到dict1['c']的类型,因为这是我们要添加的内容:

print(type(dict1['c']))
<class 'list'>

当我们看到它时,让我们看看这个列表中的内容:

print(type(dict1['c'][0]))
<class 'dict'>

所以我们有一个列表,列表的第一个元素是字典。

看起来我们想要在此列表中添加另一个字典。但是,等等,我们是否正在添加一个词典?可能不是,我们知道list可以包含任意数量的对象。

让我们看看我们如何添加到列表中。快速谷歌给我们Difference between append vs. extend list methods in Python。所以我们需要list.append。我们试试吧:

dict1['c'].append(newvalue)

print(dict1)

{'a': 1,
 'b': 2,
 'c': [{'aa': 11, 'bb': 22},
       {'aa': 111, 'bb': 222}]}
嘿,presto!那是完全我们正在寻找的东西。

答案 1 :(得分:0)

要详细说明jpp的优秀答案,它确实适用于for循环(下面的代码通常会有一个索引,而不仅仅是&#39; newvalue&#39;)。

newvalue = {'aa': 111, 'bb': 222}

dict1 = {
'a': 1,
'b': 2,
'c': [{'aa': 11, 'bb': 22}]}

for i in range(1):
    dict1['c'].append(newvalue)
print(dict1)

<强>结果:

{'a': 1, 'b': 2, 'c': [{'aa': 11, 'bb': 22}, {'aa': 111, 'bb': 222}]}