蟒蛇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]]}

09-30 00:00