1

可能是我还没有睡,但是我没有找到解决这个问题的方法,所以我来找大家。我有一个列表,其中包含一系列子列表,每个子列表都包含两个值,如下所示:

list = (
  (2, 5),
  (-1, 4),
  ( 7, -3)
  )

我还有一个变量,一个包含两个值的类似列表,就是这样:

var = (0, 0)

我想添加list中的所有 x 值,然后添加所有 y 值,然后将总和存储在var中,因此var的所需值为:

var = (8, 6)

我怎么能做到?如果答案很简单,我很抱歉,我只需要在睡觉之前完成这个。

4

2 回答 2

6
sumvar = map(sum,zip(*my_list))

应该做你想做的

于 2013-07-27T16:45:46.540 回答
0

对我来说,这听起来像是“减少”的工作:

reduce(lambda a,b: (a[0]+b[0],a[1]+b[1]), list)
(8,6)

您还可以使用另一种列表理解方法(更具可读性):

sum(a for a,b in tpl), sum(b for a,b in tpl)
(8,6)
于 2013-07-27T16:50:29.143 回答