擅长:python、mysql、java
<p>你很亲密。问题是你在字典理解中的列表理解。<code>mydict[k], mydictcorr[k]</code>都返回了float,但您试图迭代它们<code>[x-y for x, y in mydict[k], mydictcorr[k]]</code>。在</p>
<p>这将对您有用:</p>
<pre><code>def sub(base, subtract):
corrected = []
for base_dict, sub_dict in zip(base, subtract):
corrected.append({k: v - sub_dict.get(k, 0) for k, v in base_dict.items()})
return corrected
</code></pre>
<p>或者作为一个更不可读的一行(因为我想看看我是否可以):</p>
^{pr2}$
<p>尽管如此,当您减去float时,您可能仍然会看到一些奇怪的结果。例如,<code>{'Tom': 3.999999999999999}</code>。您可能需要在round调用中包装<code>v - sub_dict.get(k, 0)</code>。在</p>