我从这里得到一个清单:
items = [[slot['accountLabelType'], slot['totalPrice']] for slot in self.data]
这会产生如下列表:
['Transport', 888]
现在,在此列表中有重复项,我想要做的是识别重复项并对其值求和。我已经读过您可以在collections.Counter
的列表中找到重复项,我正在尝试:
c = [y for y in Counter(self.data) if y > 1]
但我收到了错误
TypeError: unhashable type: 'list'
答案 0 :(得分:2)
您可以使用defaultdict
:
from collections import defaultdict
c = defaultdict(int)
for slot in self.data:
c[slot['accountLabelType']] += slot['totalPrice']
答案 1 :(得分:1)
您可以在开头创建一个字典,并在迭代时汇总totalPrice
字段:
items = {}
for slot in self.data:
label = slot['accountLabelType']
price = slot['totalPrice']
if label in items:
items[label] += price
else:
items[label] = price
print items