将倍数字典添加到字典

时间:2018-12-04 19:30:14

标签: python dictionary

我有多个这样的词典列表:

list_of_dictionaries_1 = [{
 'a':1,
 'b':2
}, {
 'a':3,
 'b':4
}]

list_of_dictionaries_2 = [{
 'c':1,
 'd':2
}, {
 'c':3,
 'd':4
}]

我想将每个元素添加到新字典中。

new_dictionary = {
data: [{
 'a':1,
 'b':2
}, {
 'a':3,
 'b':4
}, {
 'c':1,
 'd':2
}, {
 'c':3,
 'd':4
}]
}

所以我为每个词典列表做了这个:

for dictionary_ in list_of_dictionaries_1:
    new_dictionary['data'] = dictionary_

但这只是返回字典列表中的最后一个元素。

new_dictionary = {
   data:[{
   'c':3,
   'd':4
  }]
}

如何在新词典中添加所有词典?

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以这样做:

new_dictionary = {'data': []}
for elem in list_of_dictionaries_1 + list_of_dictionaries_2:
    new_dictionary['data'].append(elem)

print(new_dictionary)

输出:

{'data': [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}, {'c': 1, 'd': 2}, {'c': 3, 'd': 4}]}

答案 1 :(得分:1)

您可以使用itertools.chain合并两个列表:

from itertools import chain
new_dictionary = {'data': list(chain(list_of_dictionaries_1, list_of_dictionaries_2))}

new_dictionary变为:

{'data': [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}, {'c': 1, 'd': 2}, {'c': 3, 'd': 4}]}

答案 2 :(得分:0)

您的字典结构看起来不一致。但是,您可以执行以下操作来实现您想要的目标。

list_of_dictionaries_1 = [{'a':1, 'b':2 }, {'a':3, 'b':4}]
list_of_dictionaries_2 = [{'c':1, 'd':2 }, {'c':3, 'd':4 }]
list_of_dictionaries_1.extend(list_of_dictionaries_2)
print(list_of_dictionaries_1)

输出:     [{'a':1,'b':2},{'a':3,'b':4},{'c':1,'d':2},{'c':3, 'd':4}]