Python下矩阵倒置,可以用双重循环,或者是zip实现。
- 循环实现:
嵌套的列表推导式
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
matrix_t = [[row[col] for row in matrix] for col in range(len(matrix[0]))]
matrix_t
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
原理很简单:先循环列,在固定列上循环每一行。
- 用zip 实现(以python3为实现方式):
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
matrix_t = list(map(list, zip(*matrix)))
matrix_t
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
原理也很清晰:先用zip并行迭代每一个列表,然后再用map将迭代后的元组转成列表。
原文地址:http://blog.51cto.com/huangsheng2/2120705
时间: 2024-11-09 03:08:09