合并两个列表

时间:2016-10-20 09:53:20

标签: python merge

我在python中有两个列表:

L1=[[100, 1], [101, 2]]
L2=[[100, 3], [101, 4], [102, 5]]

我想合并它们,所以我得到了:

L_merge=[[100, 4], [101, 6], [102, 5]]

两个列表的大小可能不同,这一点非常重要。

我试图使用字典但无法弄明白。我很高兴使用numpy,pandas或任何其他工具来获得合并。

3 个答案:

答案 0 :(得分:5)

您可以在两个列表中使用collections.Counter,只需汇总

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 :(得分:0)

为什么不使用for循环:

L_merge = L2
for i in len(L1):
    L_merge[i][-1] += L1[i][-1]

唯一需要注意的是,只有当L2是2个列表中较长的

时,这才有效

答案 2 :(得分:0)

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)