擅长:python、mysql、java
<p>线路</p>
<pre><code>count1 = BMIs.count(under)
</code></pre>
<p>正在计算函数</em><code>under</code><em>本身</em>在<code>BMIs</code>列表中出现的次数,而不是<code>BMIs</code>列表中有多少元素进入该函数后计算为<code>True</code></p>
<p>这里有一个想法可以改变这一点:每当函数<code>under</code>对给定的bmi计算为<code>True</code>时,我们将1添加到另一个列表中,然后简单地询问列表的长度:</p>
<pre><code>individuals_under = []
for bmi in BMIs:
if under(bmi):
people_under.append(1)
count1 = len(individuals_under)
</code></pre>
<p>另一个解决方案是使用列表理解并计算每个函数返回<code>True</code>的BMI数-这更简单,但您可能还不熟悉语法:</p>
<pre><code>count1 = [under(bmi) for bmi in BMIs].count(True)
</code></pre>
<p>希望这足够清楚,以便您理解为什么它也发生在<code>count2</code>和<code>count3</code>上</p>