给定一个元组列表,如果第一个元素相同,我如何在每个相似的元组中添加第二个元素

时间:2019-12-01 05:48:47

标签: python tuples

因此,如果我有一个名为:

的列表
d = [('hey',7),('hey',7),('hello',8)]

我如何使其输出:

d = [('hey',14),('hello',8)] 

2 个答案:

答案 0 :(得分:1)

使用itertools.groupbyoperator.itemgetter

[(k, sum(map(itemgetter(1), g))) for k, g in groupby(sorted(d), itemgetter(0))]

打印:

[('hey', 14), ('hello', 8)]

答案 1 :(得分:0)

Unload Me

使用:

lst = [('hey', 7), ('hey', 7), ('hello', 8)]

为简单起见,没有任何地图或导入功能,请使用:

d = {x:0 for x, y in lst}
for text, num in lst:
    d[text] = d[text] + num

new_lst = list(d.items())
print(new_lst)

s = {x[0] for x in lst}
new_lst = [(i,sum(x[1] for x in lst if x[0] == i)) for i in s]
print(new_lst)