下面是代碼:defaultdict如何獲得列表中所有值的總和?
models = [Url1, Url2, Url3, Url4, Url5, Url6, Url7, Url8, Url9, Url10]
d = defaultdict(list)
for model in models:
getids = model.objects.values_list('keyword', 'score')
for kw, score in getids:
d[kw].append(score)
這使得 'd' 輸出這樣的:
defaultdict(<type 'list'>, {198: [-70, 0, 5, -70, 5, 5, 0, 0, -50, -70],
199: [0, -70, -70, -70, -70, -70, -100, -70, -70, -70]})
如何使它返回此:
defaultdict({198: -245, 199: -660}) #sum of all numbers inside lists, returned as values to both keys.
我試過循環,但deafultdict沒有按似乎不像普通列表那樣工作。
這裏的關鍵是使用'int'作爲默認工廠,以便您可以保持運行總和。 –
像一個魅力工作,歡呼聲。 –