如何遍历列表并将成员汇总在一起

时间:2014-08-05 22:53:30

标签: python list python-3.3

使用Python 3.3,我有一个列表:

>>> ls
[250313, 242517, 243788, 1606025, 1566365, 1573483]

我需要一个for循环或内置函数来迭代它,一次将三个整数相加。

我希望最终结果如下:

>>> newls 
[736618, 4745873]

itertoolssum似乎对此有所帮助,但我似乎无法弄明白。

2 个答案:

答案 0 :(得分:2)

ls的每个连续三元素子列表的总和作为:

newls = [sum(ls[i:i+3]) for i in range(0, len(ls), 3)]

请注意,如果len(ls)不是三的倍数,ls的最后一个或两个元素将相加在一起,以生成newls的最后一个元素。要忽略任何不属于三个一组的尾随元素,请执行以下操作:

newls = [sum(ls[i:i+3]) for i in range(0, len(ls) - len(ls) % 3, 3)]

答案 1 :(得分:1)

将数组重塑为维数len(ls)/ 3乘3的矩阵,然后对每行中的元素求和。

import numpy as np
result = np.array(ls).reshape((-1,3)).sum(axis = 1)