擅长:python、mysql、java
<p>我建议写一些代码,而不是字典理解(你的方法)。此解决方案符合您的要求。你知道吗</p>
<pre><code>from collections import defaultdict
d = defaultdict(dict)
my_list = [ ['a', '2013', '10.22', 'won'], ['b', '2012', '11.23', 'won'], ['c', '2013', '12.62', 'lost']]
for rec in my_list:
if rec[3] in d[rec[1]]:
d[rec[1]][rec[3]] += float(rec[2])
else:
d[rec[1]][rec[3]] = float(rec[2])
print('Year', "won", " lost")
for year in sorted(d):
print(year, '\t'.join([str(d[year].get('won', '0')), \
str(d[year].get('lost', '0'))]))
</code></pre>
<p>这张照片:</p>
<pre><code>Year won lost
2012 11.23 0
2013 10.22 12.62
</code></pre>