如何将与列表列表中的重复项相关联的所有值相加?

时间:2017-11-24 13:07:23

标签: python duplicates nested-lists

我有以下列表:

x = [['A', 300], ['C', 200], ['B', 1500], ['A', 1000], ['C', 1000]]

现在我想生成一个格式相似的新列表,但是列表列表中重复字符串的所有整数都汇总在一起。我想要的结果是:

x2 = [['A', 1300], ['B', 1500], ['C', 1200]]

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

由于最终结果类似于字典,因此您可以使用字典来制作它。

import collections

x = [['A', 300], ['C', 200], ['B', 1500], ['A', 1000], ['C', 1000]]

d = collections.defaultdict(int)
for k, v in x:
    d[k] += v

x2 = d.items()
# Or list(d.items()) if you really need a list
# And list(map(list, d.items())) if you need a list of
# lists, and not a list of tuples.