python - 与 Python 中的字典列表关联

标签 python list dictionary join correlation

我有两个包含字典的列表:

List1 = [{"Value": "Value1", "Start": 7.11, "End": 8},
         {"Value": "Value2", "Start": 16.45, "End": 20}]

List2 = [{"From":7.11, "To": 8, "Result": 0},
         {"From":16.45, "To": 20 "Result": 1}
        ]

我需要通过关联这些列表来生成一个列表。所以结果将是

Result = [{"Value": "Value1", "Start": 7.11, "End": 8, Result: 0},
         {"Value": "Value2", "Start": 16.45, "End": 20,Result: 1}]

这看起来几乎就像 SQL 中的简单表连接。

我该如何用 Python 来做呢?

谢谢!

最佳答案

您可以使用嵌套字典理解:

List1 = [{"Value": "Value1", "Start": 7.11, "End": 8},
 {"Value": "Value2", "Start": 16.45, "End": 20}]

List2 = [{"From":7.11, "To": 8, "Result": 0},
 {"From":16.45, "To": 20, "Result": 1}
]

new_list = [{**a, **{'Result':b['Result']}} for a, b in zip(List1, List2)]

输出:

[{'Value': 'Value1', 'Start': 7.11, 'End': 8, 'Result': 0}, {'Value': 'Value2', 'Start': 16.45, 'End': 20, 'Result': 1}]

由于字典解包 (**) 是 Python3 独有的功能,因此您可以在 Python2 中使用 dict.items:

new_list = [dict(a.items()+[('Result', b['Result'])]) for a, b in zip(List1, List2)]

输出:

[{'Start': 7.11, 'End': 8, 'Result': 0, 'Value': 'Value1'}, {'Start': 16.45, 'End': 20, 'Result': 1, 'Value': 'Value2'}]

关于python - 与 Python 中的字典列表关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51469622/

相关文章:

java - 在 Java 中使用 HashMap 创建真实的映射

python - 为什么字典在删除后不调整大小?

python - 将 Flask-Restful API 调整为 JSON API 规范

python - 继承类;如何实现

列表列表中的 Python 函数参数

c# - 排序列表是最好的解决方案吗?

python - 使用字符串变量 **kwargs 作为命名参数

python - 将 str 连接到列表的好方法?

c++ - 如何将一个字符数组映射到另一个字符数组?

python - 字典中的交叉列表(超过两个)