我有一个数字列表,像这样排成一行:
0
1
0
2
0
4
它有大约几千行
我想每 3 行将它们相加,这样结果将是这样的:
1
6
我已经用这一行把列表变成了单独的整数:
k = map(lambda s: s.strip(), k)
integer = map(int, k)
我怎样才能加起来?
最佳答案
使用石斑鱼,比如 Alternative way to split a list into groups of n :
import itertools
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return itertools.izip_longest(*args, fillvalue=fillvalue)
map(sum, grouper(3, interger, 0))
请注意,上面的代码假设是 python 2.x;对于 3.x,您需要改用 itertools.zip_longest
。
演示:
>>> example = [0, 1, 0, 2, 0, 4]
>>> map(sum, grouper(3, example, 0))
[1, 6]
关于python - 每 3 个数字将列表中的数字相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11738464/