[英]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.