我通过从设备中获取值来构建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附加?
答案 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}]}