编写一个自定义函数,参数为一个二维列表,返回值则为其转置矩阵。编写程序,输入一个二维列表,调用该自定义函数,将矩阵转置后按行输出,并且每个元素的输出宽度为5位,右对齐。
时间: 2024-05-06 16:17:38 浏览: 68
以下是实现代码:
```python
def transpose(matrix):
"""
将二维列表转置
"""
return [[matrix[j][i] for j in range(len(matrix))] for i in range(len(matrix[0]))]
# 输入二维列表
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 转置矩阵
transposed_matrix = transpose(matrix)
# 按行输出矩阵
for row in transposed_matrix:
for element in row:
print("{:>5}".format(element), end="")
print()
```
输出结果:
```
1 4 7
2 5 8
3 6 9
```
以上代码中,我们定义了一个名为 `transpose` 的函数,用于将二维列表转置。在程序中,我们定义了一个输入矩阵 `matrix`,并将其传递给 `transpose` 函数,得到转置矩阵 `transposed_matrix`。最后,我们按行输出转置矩阵,每个元素的宽度为5,右对齐。
相关问题
4.编写一个自定义函数,参数为一个二维列表,返回值则为其转置矩阵。编写程序,输入一个二维列表,调用该自定义函数,将矩阵转置后按行输出,并且每个元素的输出宽度为5位,右对齐。
以下是自定义函数transpose_matrix的实现:
```python
def transpose_matrix(matrix):
rows = len(matrix)
cols = len(matrix[0])
transposed_matrix = []
for j in range(cols):
transposed_row = []
for i in range(rows):
transposed_row.append(matrix[i][j])
transposed_matrix.append(transposed_row)
return transposed_matrix
```
该函数接受一个二维列表作为输入参数,返回其转置矩阵。
以下是主程序的实现:
```python
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transposed_matrix = transpose_matrix(matrix)
for row in transposed_matrix:
for element in row:
print('{:5d}'.format(element), end='')
print()
```
该程序先定义一个二维列表matrix,然后调用自定义函数transpose_matrix将其转置。最后按行输出转置矩阵,每个元素的输出宽度为5位,右对齐。输出结果如下:
```
1 4 7
2 5 8
3 6 9
```
阅读全文