1
我想多个列表合并成一个列表元组相同的密钥值结合起来,同是相同的元组密钥必须与值加在一起。如何当组合列表
例如:
A = [ (1,2),(5,2) ]
B = [ (1,2),(5,5),(11,2) ]
预期结果:
result = [ (1,4),(5,7),(11,2) ]
我想多个列表合并成一个列表元组相同的密钥值结合起来,同是相同的元组密钥必须与值加在一起。如何当组合列表
例如:
A = [ (1,2),(5,2) ]
B = [ (1,2),(5,5),(11,2) ]
预期结果:
result = [ (1,4),(5,7),(11,2) ]
一旦你意识到保持第一要素的轨道的想法与dict
c = dict(A)
for key, value in B:
c[key] = c.get(key, 0) + value
result = list(c.items())
如果顺序并不重要,使用collections.Counter
是另一种选择:
In [21]: from collections import Counter
In [22]: A = [ (1,2),(5,2) ]
In [23]: B = [ (1,2),(5,5),(11,2) ]
In [24]: (Counter(dict(A)) + Counter(dict(B))).items() # list(...) for Python 3
Out[24]: [(1, 4), (11, 2), (5, 7)]