代码中的问题是
val.insert(1,0)
对列表进行适当的变异,但不返回任何值。
我的建议如下。它可能不完全是您所期望的输出(因为它返回一个元组数组),但它可能会用于您的目的:
from itertools import zip_longest
list(zip(*zip_longest(*lst, fillvalue=0)))
# output:
# [(1, 2, 3), (-1, 2, 4), (0, 2, 0), (2, -3, 6)]
说明:
[zip_longest][1]
聚合每个序列中的元素,如果它们的长度不均匀,则用
fillvalue
.通过使用
*
运算符,每个内部列表作为单独的参数传递给函数。
在完成zip_longest并填充缺失后,我将再次对其进行压缩(结果被第一次压缩转换)。