[英]How to merge list of dicts
如何合並 Python 中的字典列表? 我有兩組數據:
a = [{'date':'1/1/2019'},{'date':'1/1/2020'},{'date':'1/1/2021'}]
b = [{'value':'2'},{'value':'5'},{'value':'6'}]
如何將其合並到以下結果?
[{'date':'1/1/2019','value':'2'},
{'date':'1/1/2020','value':'5'},
{'date':'1/1/2021','value':'6'}]
在 Python 3.9 中,聯合運算符被添加到dict
,所以這個工作:
>>> a = [{'date':'1/1/2019'},{'date':'1/1/2020'},{'date':'1/1/2021'}]
>>> b = [{'value':'2'},{'value':'5'},{'value':'6'}]
>>> [x|y for x,y in zip(a,b)]
[{'date': '1/1/2019', 'value': '2'}, {'date': '1/1/2020', 'value': '5'}, {'date': '1/1/2021', 'value': '6'}]
有關詳細信息,請參閱PEP 584 。
c = [{**a1, **b1} for a1,b1 in zip(a,b)]
這里我使用了列表推導,**a1 和 **b1 用於解包和映射兩個字典列表的鍵值對
假設兩者都是相同長度的dict
的list
,您可以這樣做:
c = [{**item[0], **item[1]} for item in zip(a, b)]
[{**i[0],**i[1]} for i in zip(a,b)]
有兩種方法可以做到這一點。 一種是:
for i in range(len(a)):
a[i].update(b[i])
print(a)
如果您有 python 3.9 及更高版本
new_list = [a[i]|b[i] for i in range(len(a))]
檢查您的 python 版本:
import sys
print (sys.version)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.