擅长:python、mysql、java
<p>子列表是否总是只包含一个元组?如果是,</p>
<pre class="lang-py prettyprint-override"><code>def FitScoreSearch3(fitscores):
return min(min(x[0][:3]) for x in fitscores)
</code></pre>
<p>如果允许子列表包含多个元组:</p>
<pre class="lang-py prettyprint-override"><code>def FitScoreSearch3(fitscores):
return min(min(y[:3]) for x in fitscores for y in x)
</code></pre>
<p>在这两种情况下,这会将循环替换为生成器表达式。此外,上面的方法不是将所有数字收集到一个大列表中,然后<em>再</em>执行<code>min()</code>,而是首先计算元组上的<code>min()</code>(或者更确切地说是元组的前3个元素),然后将全局最小值计算为所有这些“子最小值”的<code>min()</code>。由于这不会创建额外的数据结构,因此速度更快</p>