我想得到两组frozensets
的并集。我只对不相交的frozensets
的并集感兴趣。从另一个角度来看,我只对长度等于两个frozensets
的总长度的并集感兴趣。理想情况下,我希望忽略任何相互不相交的frozensets
,以获得巨大的加速。我希望许多frozensets
至少有一个共同的元素。这是我目前为止用python编写的代码。我希望它是尽可能快,因为我与一个大的数据集工作。每个frozensets
不超过20个元素,但在一个集合中大约总共有1000个元素。所有数字都将介于0和100之间。如果能让我的程序运行得更快的话,我愿意转换成其他类型,但我不希望有任何重复的元素,顺序也不重要。你知道吗
sets1 = set([frozenset([1,2,3]),frozenset([4,5,6]),frozenset([8,10,11])])
sets2 = set([frozenset([8,9,10]),frozenset([6,7,3])])
newSets = set()
for fset in sets1:
for fset2 in sets2:
newSet = fset.union(fset2)
if len(newSet) == len(fset)+len(fset2):
newSets.add(frozenset(newSet))
正确的输出是
set(frozenset([1,2,3,8,9,10]),frozenset([4,5,6,8,9,10]),frozenset([8,10,11,6,7,3]))
相关问题 更多 >
编程相关推荐