请写一段python代码:编写一个函数对输入的一个2维列表进行转置。如[[1,2][3,4]]转置为[[1,3],[2,4]]。注意,转置必须是原地的,这意味着你不能利用numpy等库将列表转换为矩阵进行转置,也不能声明一个新的列表来进行转置。
时间: 2023-11-27 22:04:15 浏览: 87
python 实现二维列表转置
好的,以下是一段Python代码,实现了一个函数transpose,用于对一个二维列表进行原地转置:
```python
def transpose(matrix):
"""
对二维列表进行原地转置
matrix: 二维列表
"""
n = len(matrix)
m = len(matrix[0])
for i in range(n):
for j in range(i, m):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
```
函数使用说明:
1. matrix为待转置的二维列表,可以是任意维度的矩阵,如[[1,2,3],[4,5,6]]等。
2. 函数没有返回值,直接对原列表进行转置操作。
函数实现原理:
1. 首先获取矩阵的行数n和列数m。
2. 通过两重循环,遍历矩阵的上三角部分(i <= j),交换第i行第j列和第j行第i列的元素。
3. 循环结束后,矩阵就完成了原地转置。
测试代码:
```python
matrix = [[1, 2], [3, 4]]
transpose(matrix)
print(matrix) # 输出[[1, 3], [2, 4]]
```
运行以上代码,可以看到矩阵已经被原地转置。
阅读全文