我有很多套装,想知道他们是否有任何交集。目前使用以下代码:
if reduce(set.intersection, mysets):
...
有更好的方法吗?我不知何故听到reduce
不好用。但它似乎很适合这种情况。
答案 0 :(得分:1)
恕我直言reduce
完全可以使用(您可能希望使用functools.reduce
进入Python3)。这些集合应该被命令尽可能快地收缩(即如果可能的话,首先主要是不相交的集合),但这可能需要你可能没有的先验知识。
但是,如果您使用的是Python2.6之后的版本,则this question的答案会指出您可以使用set.intersection
。您可以使用set.intersection(*mysets)
来调用它。
答案是:
2.6之前:使用reduce
Post-2.6:使用set.intersection