将列表的元素添加到列表不起作用

2024-10-03 13:25:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个清单,里面有清单

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)]]

但是上面的代码不起作用,我该如何解决这个问题?你知道吗


Tags: 代码in列表forlengrouprangezip
2条回答
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]]

试试这个:

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]]

相关问题 更多 >