使用公共ID密钥合并两个词典列表

米歇尔·J·罗伯茨

我有以下两个词典列表:

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'},
]
CDJB

您可以使用以下列表推导,该列表推导使用double asterisk关键字argent unpacking语法,并使用zip()获得的成对元素在两个列表上求值。这具有将两个词典合并为一个的效果。

list_3 = [{**x, **y} for x, y in zip(list_1, list_2)]

输出:

>>> list3
[{'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'}]

请注意,此方法至少需要Python 3.5。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用公共滚动将两个列表视图彼此合并

来自分类Dev

使用公共列合并两个文件

来自分类Dev

使用公共列合并两个文件

来自分类Dev

使用公共列合并两个Excel文件

来自分类Dev

按公共值 (id) 匹配两个列表

来自分类Dev

合并两个矩阵并标记公共

来自分类Dev

使用两个列表中的公共信息创建矩阵

来自分类Dev

合并两个列表

来自分类Dev

Java 8:按ID合并两个对象列表

来自分类Dev

如何根据ID合并两个对象列表?

来自分类Dev

通过使用链接列表合并两个排序的列表

来自分类Dev

如何在一个表达式中合并两个词典(合并词典)?

来自分类Dev

如何在一个表达式中合并两个词典(合并词典)?

来自分类Dev

合并/合并两个Erlang列表

来自分类Dev

合并/合并两个Erlang列表

来自分类Dev

如何使用合并功能合并两个DataFrame中的公共值?

来自分类Dev

列表之间的两个公共元素

来自分类Dev

合并两个不同的列表,然后按C#上的公共属性排序?

来自分类Dev

如何将共享一个公共密钥的两个对象的两个值合并在一起并返回它?

来自分类Dev

如何将共享一个公共密钥的两个对象的两个值合并在一起并返回它?

来自分类Dev

根据一个公共ID合并两个数组

来自分类Dev

合并两个列表列表

来自分类Dev

如何找到两个词典列表之间的区别?

来自分类Dev

查找两个词典列表中的普通成员

来自分类Dev

来自两个词典列表的平均值

来自分类Dev

使用jq基于公共键值对合并两个JSON文件

来自分类Dev

无法将两个词典合并为一本词典

来自分类Dev

使用jq合并具有公共ID的密钥

来自分类Dev

合并两个哈希并返回公共数据

Related 相关文章

热门标签

归档