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)]