擅长:python、mysql、java
<p>给出:</p>
<pre><code>inControl = ["False", "False", "True", "True","False", "True", "False", "True", "True", "False", "False", "False", "False", "False", "False", "True", "False", "True", "False", "False"]
rts = [379, 396, 480, 443, 365, 280, 487, 446, 350, 367, 405, 391, 484, 359, 367, 305, 359, 479, 436, 333]
</code></pre>
<p>我假设<code>inControl</code>是字符串列表,而不是布尔值列表。为了使我的解决方案有效,我将把<code>inControl</code>转换为布尔列表:</p>
<pre><code>inControl = [element == 'True' for element in inControl] # ==> [False, False, ...]
</code></pre>
<p>使用<code>itertools.compress</code>计算所有<code>True</code>元素的总和:</p>
<pre><code>import itertools
true_sum = sum(itertools.compress(rts, inControl)) # 2783
</code></pre>
<p>现在,我们可以计算<code>false_sum</code>:</p>
<pre><code>grand_sum = sum(rts) # 7911
false_sum = grand_sum - true_sum # 5128
</code></pre>