【发布时间】:2015-09-02 09:30:12
【问题描述】:
在 python 中,我有两个列表 A 和 B。两个列表都包含元组(x,y)。例如:
A = [('x1','y1'), ('x2','y2'), ('x3','y3')]
B = [('x1','y1'), ('x2','y5'), ('x4','y4')]
现在,我想要三个结果。只要不涉及元组,所有这些都可以通过集合论轻松解决。
结果 1:两个列表的交集:set(A) & set(B))。所以结果应该是比较两个列表的元组的两个值。结果应该是:C = [('x1','y1')]
结果 2:只有 (x,y)[0] 匹配的两个列表的交集。结果应为:D = (('x1','y1'), ('x2', ('y2', 'y5'))]。理想情况下,解决方案是 D - C -> E = [('x2', ('y2', 'y5'))],但我可以接受 D 本身。
结果 3:列表 B 与 A 相比的唯一性:set(B)-(set(A) & set(B))。仅在(x,y)[0] 上进行比较。结果应该是:[('x4', 'y4')]。
我在这些问题上找不到任何东西,也无法自己构建解决方案。有人可以帮忙吗?
【问题讨论】:
-
请注意,结果3不会是
[(x2,y5), (x4,y4)]吗? -
你有什么尝试吗?
tuple是可散列的,因此您可以将A/B转换为集合并做您想做的事情。 -
@Mathias 你是绝对正确的。我更新了问题:)。
-
您在
A末尾缺少) -
@PM2Ring 已修复。还可以添加引号以立即复制粘贴到 python shell。
标签: python list set tuples set-theory