如何检查是否有多组相交?

时间:2017-08-02 18:46:05

标签: python set reduce

我有很多套装,想知道他们是否有任何交集。目前使用以下代码:

if reduce(set.intersection, mysets):
    ...

有更好的方法吗?我不知何故听到reduce不好用。但它似乎很适合这种情况。

1 个答案:

答案 0 :(得分:1)

恕我直言reduce完全可以使用(您可能希望使用functools.reduce进入Python3)。这些集合应该被命令尽可能快地收缩(即如果可能的话,首先主要是不相交的集合),但这可能需要你可能没有的先验知识。

但是,如果您使用的是Python2.6之后的版本,则this question的答案会指出您可以使用set.intersection。您可以使用set.intersection(*mysets)来调用它。

答案是:

2.6之前:使用reduce

Post-2.6:使用set.intersection