python对角线遍历
时间: 2024-05-12 19:12:32 浏览: 12
Python对角线遍历可以通过双重循环实现。具体步骤如下:
1. 定义一个列表matrix,表示要遍历的矩阵。
2. 定义两个变量row和col,表示当前遍历到的行和列。
3. 定义一个变量direction,表示当前的遍历方向。初始值为1。
4. 使用while循环,当行和列的值都小于矩阵的长度时执行。
5. 如果当前方向是向右上,则判断是否到达了矩阵的边界或者已经遍历过了,如果是则改变方向为向左下。
6. 如果当前方向是向左下,则判断是否到达了矩阵的边界或者已经遍历过了,如果是则改变方向为向右上。
7. 根据当前的行和列,获取矩阵中对应位置的元素,并打印输出。
8. 根据当前的方向,更新行和列的值。
以下是代码示例:
```
def diagonal_traverse(matrix):
if not matrix:
return []
m, n = len(matrix), len(matrix)
res = []
i, j = 0, 0
direction = 1
while i < m and j < n:
res.append(matrix[i][j])
if direction == 1:
if j == n - 1:
i += 1
direction = -1
elif i == 0:
j += 1
direction = -1
else:
i -= 1
j += 1
else:
if i == m - 1:
j += 1
direction = 1
elif j == 0:
i += 1
direction = 1
else:
i += 1
j -= 1
return res
# 示例矩阵
matrix = [[1,2,3],[4,5,6],[7,8,9]]
# 输出结果
print(diagonal_traverse(matrix))
# 输出结果为[1, 2, 4, 7, 5, 3, 6, 8, 9]
```