擅长:python、mysql、java
<p>给出两组比较的结果</p>
<pre><code>waters = frozenset(['tea', 'lemonade', 'juice', 'pepsi'])
oils = frozenset(['olive oil', 'corn oil', 'peanut oil'])
</code></pre>
<p>和一个测试组</p>
^{pr2}$
<p>通过检查集合是否是<a href="https://docs.python.org/2/library/stdtypes.html#set.isdisjoint" rel="nofollow">disjoint</a>(如果两个集合的交集为空集,则两个集合是不相交的)来确定集合是否只包含一个组中的项目(使用<a href="https://docs.python.org/2/reference/expressions.html" rel="nofollow">XOR</a>运算符)。在</p>
<pre><code>foo.isdisjoint(waters) ^ foo.isdisjoint(oils)
</code></pre>
<p>对于Python 2.5及更高版本,请使用:</p>
<pre><code>bool(foo.intersection(waters)) ^ bool(foo.intersection(oils))
</code></pre>
<p>或者,如果您记得<code>&</code>是作用于两个集合时的交集运算符。因为可读性很重要,如果您或其他正在(或将要)维护您的代码的人不知道<code>&</code>字符的含义而不查找它,只需使用<code>s1.intersection(s2)</code>。在</p>
<pre><code>bool(foo & waters) ^ bool(foo & oils)
</code></pre>