因此,如果我有一个名为:
的列表d = [('hey',7),('hey',7),('hello',8)]
我如何使其输出:
d = [('hey',14),('hello',8)]
答案 0 :(得分:1)
使用itertools.groupby
和operator.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)