擅长:python、mysql、java
<p>只需使用dict,然后将其转换为列表:</p>
<pre><code>some_list = [{'service__name': u'Email', 'service_sum': 4}, {'service__name': u'Email', 'service_sum': 1}, {'service__name': u'Network', 'service_sum': 0}]
def combine(list):
combined = {}
for item in list:
if item['service__name'] not in combined:
combined[item['service__name']] = []
combined[item['service__name']].append(item['service_sum'])
return combined.items()
combine(some_list) # [(u'Email', [4, 1]), (u'Network', [0])]
combine(unplanned)
combine(emerg + planned)
.....
</code></pre>
<p>下面是使用defaultdict的函数版本:</p>
^{pr2}$
<p>稍微干净了一点,但是有一个不必要的导入,如果函数定义被更改,那么在将来可能会出现一些其他问题(参见注释)。在</p>