用python写二维数组(3*3)转置,即行列互换
时间: 2024-02-21 08:00:22 浏览: 136
可以使用嵌套列表(list)来表示二维数组,然后通过循环实现行列互换。以下是示例代码:
```python
# 定义一个二维数组
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 打印原数组
print("原数组:")
for i in range(3):
for j in range(3):
print(arr[i][j], end=" ")
print()
# 行列互换
for i in range(3):
for j in range(i, 3):
arr[i][j], arr[j][i] = arr[j][i], arr[i][j]
# 打印转置后的数组
print("转置后的数组:")
for i in range(3):
for j in range(3):
print(arr[i][j], end=" ")
print()
```
输出:
```
原数组:
1 2 3
4 5 6
7 8 9
转置后的数组:
1 4 7
2 5 8
3 6 9
```
注意,在行列互换时,只需要处理数组的上三角或下三角即可,避免重复交换。
相关问题
用python写一个函数,使给定的一个二维数组(3*3)转置,即行列互换
可以编写一个函数,使用嵌套列表表示二维数组,然后通过循环实现行列互换,并返回转置后的二维数组。以下是示例代码:
```python
def transpose(arr):
# 定义一个新的二维数组,用于存储转置后的结果
res = [[0 for j in range(3)] for i in range(3)]
# 行列互换
for i in range(3):
for j in range(3):
res[i][j] = arr[j][i]
# 返回转置后的二维数组
return res
```
你可以这样使用该函数:
```python
# 定义一个二维数组
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 打印原数组
print("原数组:")
for i in range(3):
for j in range(3):
print(arr[i][j], end=" ")
print()
# 调用函数进行转置
res = transpose(arr)
# 打印转置后的数组
print("转置后的数组:")
for i in range(3):
for j in range(3):
print(res[i][j], end=" ")
print()
```
输出:
```
原数组:
1 2 3
4 5 6
7 8 9
转置后的数组:
1 4 7
2 5 8
3 6 9
```
注意,由于Python中函数参数传递是引用传递,所以在函数内部修改数组的值也会影响到函数外部的数组。如果不希望影响到原数组,可以在函数内部先复制一份数组再进行操作。
python写一个输入一个二维数组3×3转置,即行列互换。
可以使用以下代码实现:
```python
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transposed = [[matrix[j][i] for j in range(len(matrix))] for i in range(len(matrix[]))]
print(transposed)
```
输出结果为:
```
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
```
阅读全文