我有以下两个词典列表:
list_1 = [
{'id': '1', 'name': 'Johnny Johson1'},
{'id': '2', 'name': 'Johnny Johson2'},
{'id': '1', 'name': 'Johnny Johson1'},
{'id': '3', 'name': 'Johnny Johson3'},
]
list_2 = [
{'id': '1', 'datetime': '2020-01-06T12:30:00.000Z'},
{'id': '2', 'datetime': '2020-01-06T14:00:00.000Z'},
{'id': '1', 'datetime': '2020-01-06T15:30:00.000Z'},
{'id': '3', 'datetime': '2020-01-06T15:30:00.000Z'},
]
本质上,我希望即使在重复ID上也不会丢失数据,因为它们代表不同的事件(有一个单独的ID,但为了演示问题,不需要)。如果一个列表中有任何ID,而另一个列表中没有,则忽略该ID
理想情况下,我想以以下内容结束(从两个列表的合并中):
list_3 = [
{'id': '1', 'name': 'Johnny Johson1', 'datetime': '2020-01-06T12:30:00.000Z'},
{'id': '2', 'name': 'Johnny Johson2', 'datetime': '2020-01-06T14:00:00.000Z'},
{'id': '1', 'name': 'Johnny Johson1', 'datetime': '2020-01-06T15:30:00.000Z'},
{'id': '3', 'name': 'Johnny Johson3', 'datetime': '2020-01-06T15:30:00.000Z'},
]
您可以使用以下列表理解,它使用双星号关键字argent unpacking语法,使用zip()获得的成对元素对两个列表进行计算。这样做的效果是将两本词典合并为一本
输出:
注意,这种方法至少需要Python3.5
相关问题 更多 >
编程相关推荐