gpt4 book ai didi

python - 如何在 Python 中获取 2 个字典列表的并集

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:37 26 4
gpt4 key购买 nike

我有 2 个具有以下数据结构的列表:

 array1:
[{'student': {'name': 'abc'}, 'address': 'add_abc'},
{'student': {'name': 'xyz'}, 'address': 'add_xyz'}]

array2:
[{'student': {'name': 'abc'}, 'address': 'add_abc'},
{'student': {'name': 'rst'}, 'address': 'add_rst'}]

我想要一个 array3 上面两个列表的并集

 array3:
[{'student': {'name': 'abc'}, 'address': 'add_abc'},
{'student': {'name': 'rst'}, 'address': 'add_rst'},
{'student': {'name': 'xyz'}, 'address': 'add_xyz'}]

我如何在 Python 中做到这一点?

最佳答案

它们是列表,不是数组,但这里有一个解决方案:

a1 = [{'student': {'name': 'abc'}, 'address': 'add_abc'}, 
{'student': {'name': 'xyz'}, 'address': 'add_xyz'}]
a2 = [{'student': {'name': 'abc'}, 'address': 'add_abc'},
{'student': {'name': 'rst'}, 'address': 'add_rst'}]
a3 = a1 + [i for i in a2 if i not in a1]

a3 的值将是

[{'student': {'name': 'abc'}, 'address': 'add_abc'}, 
{'student': {'name': 'xyz'}, 'address': 'add_xyz'},
{'student': {'name': 'rst'}, 'address': 'add_rst'}]

如果您希望对结果列表进行排序(例如,按学生姓名),只需使用 sort 方法:

a3.sort(key=lambda x: x["student"]["name"])

结果 a3 将是:

[{'student': {'name': 'abc'}, 'address': 'add_abc'}, 
{'student': {'name': 'rst'}, 'address': 'add_rst'},
{'student': {'name': 'xyz'}, 'address': 'add_xyz'}]

通常你会简单地使用 set(a1 + a2) 但这里的问题是你的 list 中有 dict 并且它们是不可散列的,因此它们不能是设置项。

关于python - 如何在 Python 中获取 2 个字典列表的并集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36710316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com