擅长:python、mysql、java
<p>这里的问题是你试图把字符串加在一起——注意原始答案中的价格是如何在报价中的,并且有<code>$</code>符号,它们不仅仅是数字!在</p>
<p>你要解决的就是这个问题。我在这里避免使用<code>sum</code>方法,因为它并不是真正为处理这样的输入而设计的。有一种方法可以做到:</p>
<pre><code>sumCat={}
for k, v in result.items():
summed_vals = 0
for price in v:
if '-' in price:
# takes into account the dollar sign/negative sign
summed_vals -= float(price[2:])
else:
summed_vals += float(price[1:]) # takes into account the dollar sign
sumCat[k] = format(summed_vals, '.2f') # rounds to nearest cent
print(sumCat)
#output
{'food': '173.19', 'kid': '175.00', 'entertainment': '76.02'}
</code></pre>