使用Python 3.3,我有一个列表:
>>> ls
[250313, 242517, 243788, 1606025, 1566365, 1573483]
我需要一个for
循环或内置函数来迭代它,一次将三个整数相加。
我希望最终结果如下:
>>> newls
[736618, 4745873]
itertools
或sum
似乎对此有所帮助,但我似乎无法弄明白。
答案 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)