擅长:python、mysql、java
<p>您想知道的是<code>animals</code>中每个项的值是否是<code>observations</code>的超集。谢天谢地,<code>set</code>有一个<a href="https://docs.python.org/3/library/stdtypes.html#set.issuperset" rel="nofollow">method</a>来精确地测试它,所以您的函数很简单:</p>
<pre><code>def guess(observations, animals):
return {k for k, v in animals.items() if v.issuperset(observations)}
</code></pre>
<p>请注意,<code>guess()</code>返回一个集合,因为<code>animals</code>中可能有多个符合条件的项:</p>
<pre><code>>>> animals = {'cat': {'pet,' 'fluffy', 'cute'}, 'dog': {'pet'}}
>>> observations = {'pet,' 'fluffy'}
>>> guess(observations, animals)
{'cat'}
</code></pre>
<p>也可以使用<code>>=</code>和<code><=</code>运算符作为<code>issuperset</code>和<code>issubset</code>(而不是<code>></code>和<code><</code>,它们分别是<em>适当的</em>超集和子集的同义词)。你知道吗</p>