Merge two lists together
我在python中有两个列表:
1 2 | L1=[[100, 1], [101, 2]] L2=[[100, 3], [101, 4], [102, 5]] |
我想合并它们,这样我得到:
1 | L_merge=[[100, 4], [101, 6], [102, 5]] |
号
重要的是,这两个列表的大小可能不同。
我试着用字典,但没能搞清楚。我很乐意使用numpy、pandas或任何其他工具来实现合并。
您可以在这两个列表中使用
1 2 3 4 5 6 7 8 | from collections import Counter L1 = [[100, 1], [101, 2]] L2 = [[100, 3], [101, 4], [102, 5]] L_merge = (Counter(dict(L1)) + Counter(dict(L2))).items() print(list(L_merge)) # [(100, 4), (101, 6), (102, 5)] |
号
1 2 3 4 5 6 7 8 9 | L1=[[100, 1], [101, 2]] L2=[[100, 3], [101, 4], [102, 5]] d = {} for a,b in L1+L2: d[a] = d.get(a,0) + b L_merge = [[k,v] for k,v in d.items()] print(L_merge) |
为什么不使用for循环:
1 2 3 | L_merge = L2 for i in len(L1): L_merge[i][-1] += L1[i][-1] |
一个警告是,只有当l2是2个列表中较长的列表时,这才有效。