擅长:python、mysql、java
<p>您可以构建一个<code>dict</code>集合元素来计算它们被找到的次数,然后删除所有元素的计数为1的任何<code>frozenset</code>。<code>collections.Counter</code>会很方便。你知道吗</p>
<p>它的优点是<code>O(n)</code>,其中<code>n</code>是所有集合中元素的总数。你知道吗</p>
<pre><code>from collections import Counter
data = set([frozenset([1,2,3,4]), frozenset([3,4,5,6,7,8]), frozenset([100,200]), frozenset([1,1000, 2000])])
counts = Counter(elt for fs in data for elt in fs)
result = {fs for fs in data if any(counts[elt] > 1 for elt in fs)}
# {frozenset({1, 2, 3, 4}), frozenset({1000, 1, 2000}), frozenset({3, 4, 5, 6, 7, 8})}
</code></pre>