在元组列表中汇总值(无字典)

时间:2019-05-29 15:33:48

标签: python list aggregate

如果其他三个元素匹配,我想对元组的第4个元素求和。 例如:  可以说我有这个元组列表:

d = [('a','b',1,5),('a','b',1,5),('a','b',1,5),('x','y',2,6),('x','y',2,6)]

我想作为输出:

output = [('a','b',1,15),('x','y',2,12)]

我已经用字典完成了,但是我想知道是否是另一种方式。

1 个答案:

答案 0 :(得分:0)

我不确定这是否是op想要的:

d = [('a','b',1,5),('a','b',1,5),('a','b',1,5),('x','y',2,6),('x','y',2,6)]

out1, out2 = [], []
for i in d:
    if i[:-1] in out1:
        out2[out1.index(i[:-1])] += i[-1]
    else:
        out1.append(i[:-1])
        out2.append(i[-1])

out = [tuple(j) + (out2[i],) for i, j in enumerate(out1)]
print(out)

打印:

[('a', 'b', 1, 15), ('x', 'y', 2, 12)]