我刚刚通过阅读 matrix transposing tutorial here 开始列表理解。 。我理解这个例子,但我试图找出一种转置矩阵的方法,而不需要对范围进行硬编码。
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
lcomp = [[row[i] for row in matrix] for i in range(4)]
print(lcomp)
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] #result
我希望它能够计算出最大嵌套数组所具有的最大元素数,而不是range(4)
。我尝试放置一个 lambda
但不断收到错误。是否可以在一行中完成此操作?
最佳答案
你可以使用另一种理解方式!它们是一个非常强大的工具。
[[row(i) for row in matrix] for i in range(max(len(r) for r in matrix))]
关于Python 列表推导式 - 转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39729469/