3

我有一个delta生成两个数字的元组的迭代,(dx, dy)我想计算每个数字的总和。以下内容不起作用,因为delta在第一次迭代后处理。

x = sum(dx for dx, dy in delta)
y = sum(dy for dx, dy in delta)

任何想法?我正在考虑以某种方式变成anddelta的两个可迭代对象,但到目前为止还没有达到任何目标。dxdy

4

2 回答 2

5

使用zip()map()函数sum()在每列上应用:

x, y = map(sum, zip(*delta))
于 2018-02-03T14:13:21.243 回答
3

这应该做的!

ysum = 0
xsum = 0

for dx, dy in delta:
    xsum += dx
    ysum += dy

生成器的想法是您可以将其耗尽一次,那么为什么不一次完成所有数学运算呢?

于 2018-02-03T14:13:22.300 回答