我正在处理一个小型项目,我要生成线性图并说例如我需要有10个点,但数据可以是1000个点的数组。 / p>
[1,5,3,5,6,33,9,1,12,4,2]
考虑上面的整数数组(11个值),我想将其重新整形为一个包含3个值的数组,同时将最终结果的值相加,如下所示:
[14,49,18] (4 values + 4 values + 3 values)
在没有任何外部库的情况下,在python中使用能够处理任何大小(至少大于重构大小)的函数最好的方法是什么?
答案 0 :(得分:7)
你想要这样的东西:
a = [1, 5, 3, 5, 6, 33, 9, 1, 12, 4, 2]
step = 4
print [sum(a[i:i + step]) for i in range(0, len(a), step)]
输出
[14, 49, 18]
答案 1 :(得分:3)
grouper
食谱的启发
data = [1,5,3,5,6,33,9,1,12,4,2]
from itertools import izip_longest
print map(sum, izip_longest(*[iter(data)] * 4, fillvalue = 0))
# [14, 49, 18]