<p>问题是您只需检查第一个值,然后返回<code>True</code>或{<cd2>}。相反,请按以下步骤操作:</p>
<p><strong>1)</strong></p>
<pre><code>def has23(nums):
if (2 in nums) or (3 in nums):
return True
else:
return False
</code></pre>
<p><strong>2)</strong><code>@Ricardo</code>建议:<code>return (2 in nums) or (3 in nums)</code></p>
<p><strong>3)</strong><code>@thefourtheye</code>建议:<code>return len(set(nums) & {2, 3}) > 0</code></p>
<p><strong>4)</strong><code>@thefourtheye</code>也建议<code>return set(nums).isdisjoint({2, 3})</code></p>
<p><strong>5)</strong><code>@RemcoGerlich</code>建议<code>return any(i == 2 or i == 3 for i in nums)</code></p>
<p><strong>6)</strong>或者如果您想使用您的循环类型:</p>
^{pr2}$
<h2>[注]</h2>
<p>我在用lambda测试这个问题,这里有一个方法来测试任意数量的检查:
这将检查<code>to_check</code>中是否有任何元素在<code>lst</code>中</p>
<p><strong>7)</strong></p>
<pre><code>>>> lst = [1,2,4,7,4,10,53,76,45,354,654,434,32]
>>> to_check = [3,4,9,96,23]
>>> print any(map(lambda i: i in lst, to_check))
True
</code></pre>
<p>我知道这和你的问题没有直接关系,但这可能是个值得关注的问题。相当漂亮。在</p>
<p>另一种方式:</p>
<p><8)<strong></p>
<p><code>>>> print len(set(bar) & set(to_check)) > 0</code></p>