【发布时间】:2016-10-30 17:53:38
【问题描述】:
我在 python 中有两个列表:
L1=[[100, 1], [101, 2]]
L2=[[100, 3], [101, 4], [102, 5]]
我想合并它们,所以我得到:
L_merge=[[100, 4], [101, 6], [102, 5]]
这两个列表的大小可能不同,这一点很重要。
我试图使用字典,但无法弄清楚。我很高兴使用 numpy、pandas 或任何其他工具来实现合并。
【问题讨论】:
-
从上面的链接改编解决方案:
collections.Counter(dict(L1)) + collections.Counter(dict(L2))。可能有一种方法可以先跳过将列表转换为dicts。见stackoverflow.com/q/11290092/2301450 -
你对这两个列表了解多少?他们都确定排序了吗?项目在一个列表中但不在另一个列表中的中间是否存在“间隙”?您确定每个项目都是两个整数的列表吗?以此类推。
-
“重复”问题是关于组合字典,而不是列表
-
@Rory Daulton 所以排序应该不是问题,因为你可以事先做到这一点。中间的差距绝对是一个可能的情况。是的,列表中的每个项目都有两个整数,但如果你有超过 2 个整数会很有趣,但是所有合并的列表都会有相同数量的项目。