擅长:python、mysql、java
<p>生成您希望出现的所有对,并查看它们是否存在,并进行子集检查:</p>
<pre><code>from itertools import combinations
def _norm(it):
return {tuple(sorted(t)) for t in it}
def set_contains(foo, var):
return _norm(combinations(var, 2)) <= _norm(foo)
print(set_contains({('A', 'B'), ('C', 'D'), ('B', 'C'), ('A', 'C')},
{'A', 'C', 'B'})) # True
print(set_contains({('A', 'B'), ('C', 'D'), ('B', 'C'), ('A', 'C')},
{'A', 'C', 'D'})) # False
</code></pre>
<p>可以减少排序的数量,这取决于<code>combinations</code>的确切工作方式(我不能百分之百地确定文档是什么样子的),并且如果您多次重用<code>foo</code>或{<cd3>},因此可以预先对其中一个部分进行一次排序。在</p>