[英]how to create a dictionary with list of dictionaries as values from a list of dictionaries
[英]How to create list of dictionaries from a single dictionary?
如何將字典列表轉換為單個字典?
例如,假設我的初始列表如下:
Dictionary_list = [{key:value}, {key2:value2}, {key3:value3}]
我需要結果字典為:
New_dictionary = {key:value, key2:value2, key3:value3}
您可以使用字典理解來實現這一點:
>>> 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'}
注意:如果您的初始字典列表中存在多個字典中的任何“鍵”,則上述解決方案最終將保留初始列表中“鍵”的最后一個“值”。
另一種解決方案是創建一個空字典並更新它:
>>> 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() 方法非常有用,通常當您想要創建包含來自連續字典的變量的“環境”時。
函數式編程答案:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.