蟒蛇3:
dct = {'Mazda': [['Ford', 95], ['Toyota', 20], ['Chrysler', 52], ['Toyota', 5], ['Toyota', 26]]}
我有上面的字典,其中的值是列表中的一个列表。我想做的是合并列表中相同的项并将整数添加到该值中。
既然丰田在那里是3倍,那么把所有的数字加起来,再给我一份清单
[Toyota, 51]
最终结果应该是
不需要按这个顺序
dct = {'Mazda': [['Ford', 95], ['Toyota', 51], ['Chrysler', 52]]}
最佳答案
对于问题的输入:
dct = {'Mazda': [['Ford', 95], ['Toyota', 20], ['Chrysler', 52],
['Toyota', 5], ['Toyota', 26]]}
试试这个:
from collections import defaultdict
for k, v in dct.items():
aux = defaultdict(int)
for car, num in v:
aux[car] += num
dct[k] = map(list, aux.items())
现在
dct
包含预期结果:dct
=> {'Mazda': [['Ford', 95], ['Toyota', 51], ['Chrysler', 52]]}