Как создать список словарей из одного словаря? - PullRequest
0 голосов
/ 01 ноября 2018

Как я могу превратить список словарей в один словарь?

Например, допустим, мой начальный список выглядит так:

Dictionary_list = [{key:value}, {key2:value2}, {key3:value3}]

Мне нужен результирующий словарь как:

New_dictionary = {key:value, key2:value2, key3:value3}

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Другое решение - создать пустой словарь и обновить его:

>>> my_list = [{'key':'value'}, {'key2':'value2'}, {'key3':'value3'}]
>>> my_dict = {}
>>> for d in my_list: my_dict.update(d)
...
>>> my_dict
{'key': 'value', 'key2': 'value2', 'key3': 'value3'}

Как правило, метод update () очень полезен, как правило, когда вы хотите создать «среды», содержащие переменные из последовательных словарей.

0 голосов
/ 01 ноября 2018

Ответ по функциональному программированию:

from functools import reduce # depending on version of python you might need this. 

my_list = [{'key':'value'}, {'key2':'value2'}, {'key3':'value3'}]
def func(x,y):
    x.update(y)
    return x
new_dict = reduce(func, my_list)

>>> new_dict
{'key': 'value', 'key2': 'value2', 'key3': 'value3'}

Один лайнер:

new_dict = reduce(lambda x, y: x.update(y) or x, my_list) # use side effect in lambda
0 голосов
/ 01 ноября 2018

Вы можете использовать словарное понимание для достижения этого как:

>>> my_list = [{'key':'value'}, {'key2':'value2'}, {'key3':'value3'}]

>>> my_dict = {k: v for item in my_list for k, v in item.items()}
>>> my_dict
{'key3': 'value3', 'key2': 'value2', 'key': 'value'}

Примечание: Если ваш начальный список словарей будет иметь какой-либо «ключ» в более чем одном словаре, решение, приведенное выше, в конечном итоге сохранит последнее «значение» «ключа» из начального списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...