擅长:python、mysql、java
<p>一种解决方案可能是使用集合内置数据结构并比较每个集合。为此,你可以把你所有的集合放进一本字典,并给出(1,2,3,5,6)键。
要获得用于比较的所有排列,您可以使用itertools.product,例如:</p>
<pre><code>import itertools
sets_1 = range(1,7)
sets_2 = range(1,7)
perms = list(filter(lambda x: x!=0, [(a,b) if a!= b else 0 for (a, b) in list(itertools.product(*[sets_1, sets_2]))]))
</code></pre>
<p>通过使用perms,您可以执行以下操作:</p>
<pre><code>sets_dict= {1:{2,3}, 2:{5,6}, 3:{7,8}, 4:{5,9}, 5:{10,22}, 6:{22,4}}
for (set_1, set_2) in perms:
print(sets_dict[set_1] & sets_dict[set_2])
</code></pre>
<p>或者,如果您的集合太大,您可以循环遍历每个集合并填写字典,其中键是集合成员,值是承载它们的集合</p>