Python中2×3矩阵转置遇问题:zip输出不符预期,如何实现目标转置?
Python矩阵转置为列表形式的解决方案
你当前用zip(*matrix)得到的是元组组成的列表,但目标t_matrix是列表组成的列表,只需要把每个元组转换为列表即可实现预期效果。
方法一:列表推导式
matrix = [['*','*','*'], ['*','*','*']] t_matrix = [list(row) for row in zip(*matrix)] print(t_matrix)
运行结果:
[['*', '*'], ['*', '*'], ['*', '*']]
方法二:使用map函数
matrix = [['*','*','*'], ['*','*','*']] t_matrix = list(map(list, zip(*matrix))) print(t_matrix)
同样能得到符合预期的转置结果。
原理说明
zip(*matrix)的作用是将原矩阵的每一列打包成一个元组,返回一个包含这些元组的迭代器。通过list()将每个元组转换为列表,就能得到你需要的列表嵌套结构的转置矩阵。
内容的提问来源于stack exchange,提问作者user20380228
相关产品推荐
相关产品推荐

