我有一个包含列表的列表
testList = [[1, 0, 1], [1, 1, 1], [0, 0, 0], ...]
我想要做的是将列表添加到n
组中,所以如果n是2,前两个列表将被加在一起,后两个列表将被加在一起,它就像[1, 0, 1] + [1, 1, 1] = [2, 1, 2]
。
我尝试了以下代码,
group_len = 3
sumResultList = [[sum(x) for x in zip(*testList)] for group in [testList[i:i+group_len] for i in range(0, len(testList), group_len)]]
但上面的代码不起作用,我该如何解决?
答案 0 :(得分:3)
l = [[1, 0, 1], [1, 1, 1],
[0, 0, 0], [1, 0, 1],
[1, 1, 1], [1, 0, 1],
[1, 1, 1], [1, 1, 1]]
n = 2
print [[sum(x) for x in zip(*l[a:a+n])] for a in range(0,len(l),n)]
输出:
[[2, 1, 2], [1, 0, 1], [2, 1, 2], [2, 2, 2]]
答案 1 :(得分:1)
试试这个:
testList = [[1, 0, 1], [1, 1, 1], [0, 0, 0], [2,3,4], [2,3,4], [2,3,4]]
group_len = 2
res = [list(map(sum, zip(*testList[k:k+group_len]))) for k in range(0, len(testList), group_len)]
print(res)
输出:
[[2, 1, 2], [2, 3, 4], [4, 6, 8]]