Добавить кратные диктовку в диктовку - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть кратный список словарей, подобных этому:

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 голосов
/ 04 декабря 2018

Вы можете использовать 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}]}
0 голосов
/ 04 декабря 2018

Структура вашего словаря выглядит противоречивой.Но, тем не менее, вы можете сделать следующее, чтобы добиться того, для чего вы пытаетесь.

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}]

0 голосов
/ 04 декабря 2018

Если я правильно понял, вы могли бы сделать это так:

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}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...