+-
如何在Python中对具有相同名称的元组的值求和
我有以下列表包含必须值的元组:

mylist=[(3, 'a'), (2, 'b'), (4, 'a'), (5, 'c'), (2, 'a'), (1, 'b')]

有没有办法将所有具有相同名称的值相加?
就像是:

(9, 'a'), (3, 'b'), (5, 'c')

我尝试用for循环迭代元组,但无法得到我想要的东西.

谢谢

最佳答案
您可以使用itertools.groupby(在按每个元组的第二个值排序之后)来创建组.然后对于每个组,对每个元组中的第一个元素求和,然后在列表推导中为每个组创建一个元组.

>>> import itertools
>>> [(sum(i[0] for i in group), key) for key, group in itertools.groupby(sorted(mylist, key = lambda i: i[1]), lambda i: i[1])]
[(9, 'a'), (3, 'b'), (5, 'c')]
点击查看更多相关文章

转载注明原文:如何在Python中对具有相同名称的元组的值求和 - 乐贴网