当前位置: 首页 > 面试题库 >

如何在Python中对具有相同名称的元组的值求和

朱硕
2023-03-14
问题内容

我有以下列表,其中包含必须具有值的元组:

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')]


 类似资料:
  • 问题内容: 我有作为元组的股票和持仓清单。买入为正,卖出为负。例: 我如何求和股票头寸,以获取当前持股量? 问题答案: 这个怎么样?您可以阅读有关。

  • 问题内容: 我的问题是为什么我不能再次调用该函数?或者,如何做到这一点? 假设我有这个功能: 我称之为: 我得到4。 但是,假设我声明了一个与该函数同名的变量(错误): 现在,如果我尝试这样做: 要么: 我将收到此错误:“ TypeError:’int’对象不可调用” 无法将变量“ a”分配给函数? 问题答案: 完成此操作后: 不再是一个 函数 ,而只是一个 整数 (您已将其重新分配!)。因此,很

  • 我使用的是,我需要展平包含同名字段的文档。 我创建的文档如下所示: 在那之后,我试图像下面这样压平文档: 我的主要方法是: 展平后,我得到的文档包含一个展平字段,但我必须得到两个展平字段。 如何解决此问题?

  • 我创建了一个java程序来创建一个预订系统,我必须创建一个GUI。在GUI中,我创建了具有相同对象名称的多个标签。我为此使用了gridPane Layout。 现在,我想删除所有这些标签并重新创建新标签,但当我尝试这样做时:

  • 这个问题是如何为WS设置参数的扩展。播放2.1 Java中的post() 我的Web服务请求处理程序如下 因为WSaskestHolder接受一个

  • 问题内容: 一个人如何处理一个javascript对象数组,例如: 并通过将值相加来合并重复的键。为了得到这样的东西: 我尝试迭代并添加到新数组,但这没有用: 问题答案: 您应该使用属性将未找到的每个对象分配给结果。 如果找到它,则需要添加它。 另外,部分问题是您正在重用变量来引用的值,因此您失去了对该对象的引用。