如何遍历列表并求和成员
我在使用Python 3.3的时候,有一个这样的列表:
>>> ls
[250313, 242517, 243788, 1606025, 1566365, 1573483]
我需要一个for
循环或者内置函数来遍历这个列表,每次把三个整数加在一起。
我希望最后的结果看起来像这样:
>>> newls
[736618, 4745873]
看起来itertools
或者sum
可能对这个有帮助,但我还没搞明白怎么用。
2 个回答
1
把你的数组变成一个矩阵,矩阵的行数是数组长度除以3,列数是3。然后对每一行的元素进行求和。
import numpy as np
result = np.array(ls).reshape((-1,3)).sum(axis = 1)
2
对列表 ls
中每三个连续的元素进行求和,结果如下:
newls = [sum(ls[i:i+3]) for i in range(0, len(ls), 3)]
需要注意的是,如果 len(ls)
不是3的倍数,那么 ls
的最后一个或两个元素会被一起求和,形成 newls
的最后一个元素。如果想要忽略那些不成组的元素,可以这样做:
newls = [sum(ls[i:i+3]) for i in range(0, len(ls) - len(ls) % 3, 3)]