这可能是我还没有睡觉的事实,但我找不到解决这个问题的方法,所以我来找你们。我有一个列表,其中包含一系列子列表,每个子列表包含两个值,如下所示:
list = (
(2, 5),
(-1, 4),
( 7, -3)
)
我还有一个变量,一个带有两个值的类似列表,就是这样:
var = (0, 0)
我想在 list 中添加所有x值,然后添加所有y值,然后将总和存储在 var 中,以便的所需值var 是:
var = (8, 6)
我怎么能这样做?如果答案很简单,我很抱歉,我只需要在睡觉之前完成这件事。
答案 0 :(得分:6)
sumvar = map(sum,zip(*my_list))
应该做你想要的事情
答案 1 :(得分: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)