Python 列表推导式 - 转置

标签 python matrix list-comprehension

我刚刚通过阅读 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/

相关文章:

math - 任何人都可以为傻瓜推荐一些转换矩阵教程吗?

python - 在 Python 中连接字符串的最有效方法

python - 无法更改 matplotlib 中的刻度标签属性

python - 用 NumPy 实现三对角矩阵算法 (TDMA)

python - 在 Heroku 上部署音频预测模型时出现 "OSError: sndfile library not found"和 "Unable to locate package libsndfile1"错误

python - 在启动时启动 couchpotato.py,无需保持 ssh session 打开。 ReadyNAS (Debian 7)

matrix - 您会如何简单地描述 DSM?

R - 按重复值过滤矩阵

python - 我可以在列表(或字典)理解中对元素进行分组/聚合吗?

python - 矩阵列表理解均值