Python:如果前两个元素相同,则在嵌套列表中添加元素

我有一个嵌套列表:

 a = [[1,2,3,4,5],[1,2,5,6,7],[1,2,5,2,1],[1,3,4,5,7],[3,4,1,2,3],[3,4,1,1,1]]

如果子列表的前两个元素相同,那么我想添加相应的第3,第4和第5个元素,同时保留前两个元素.对于上述情况,结果应为:

a = [[1,2,13,12,13],[1,3,4,5,7],[3,4,2,3,4]]

有没有办法做到这一点?

谢谢.

最佳答案
您可以使用字典根据前两项对子列表进行分类,然后迭代这些项并计算总和:

>>> d = {}
>>> for sub in a:
...    d.setdefault(tuple(sub[:2]),[]).append(sub[2:])
... 

>>> 
>>> [k+tuple(map(sum, zip(*v))) for k,v in d.items()]
[(1, 2, 13, 12, 13), (1, 3, 4, 5, 7), (3, 4, 2, 3, 4)]

转载注明原文:Python:如果前两个元素相同,则在嵌套列表中添加元素 - 代码日志