Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查多个集合是否相交?_Python_Set_Reduce - Fatal编程技术网

Python 如何检查多个集合是否相交?

Python 如何检查多个集合是否相交?,python,set,reduce,Python,Set,Reduce,我有很多集,想知道它们是否有交叉点。目前使用的代码如下: if reduce(set.intersection, mysets): ... 有更好的方法吗?我不知怎的听说reduce不好用。但是它似乎非常适合这个场景。IMHOreduce非常适合使用(您可能希望使用functools.reduce进入Python3)。集合应尽可能快地收缩(即,如果可能,首先要有大部分不相交的集合),但这可能需要您可能不具备的先验知识 但是,如果您使用的是Python2.6之后的版本,则对的回答将说明您

我有很多集,想知道它们是否有交叉点。目前使用的代码如下:

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

有更好的方法吗?我不知怎的听说
reduce
不好用。但是它似乎非常适合这个场景。

IMHO
reduce
非常适合使用(您可能希望使用
functools.reduce
进入Python3)。集合应尽可能快地收缩(即,如果可能,首先要有大部分不相交的集合),但这可能需要您可能不具备的先验知识

但是,如果您使用的是Python2.6之后的版本,则对的回答将说明您可以使用
set.intersection
。然后可以使用
set.intersection(*mysets)
调用此函数

答案是:

2.6之前:使用reduce

Post-2.6:使用集合交叉点