顺时针打印矩阵 python
时间: 2024-09-12 11:07:25 浏览: 36
在Python中,顺时针打印矩阵通常是指从左上角开始,沿着矩阵的边缘向右下角移动,依次访问每个元素的过程。这可以使用递归或者迭代的方式实现,下面是一个简单的迭代方法示例:
```python
def spiral_traversal(matrix):
if not matrix or not matrix[0]:
return []
# 定义四个方向的移动
dx, dy = [0, 1], [1, 0]
x, y, row_end, col_end = 0, 0, len(matrix) - 1, len(matrix[0]) - 1
result = []
while x <= col_end and y <= row_end:
# 打印当前行
for i in range(y, col_end + 1):
result.append(matrix[x][i])
x += dx[0]
# 如果行还没有走完
if x < row_end:
# 打印当前列
for i in range(x + 1, row_end + 1):
result.append(matrix[i][col_end])
y += dy[1]
# 如果列还没有走到头
if y < row_end:
# 打印倒数第二行
for i in range(y + 1, col_end + 1)[::-1]:
result.append(matrix[row_end][i])
row_end -= dx[1]
# 如果行还没有结束
if x > 0:
# 打印倒数第一列
for i in range(row_end - 1, y, -1):
result.append(matrix[i][x - 1])
col_end -= dy[0]
return result
# 示例
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(spiral_traversal(matrix)) # 输出: [1, 2, 3, 6, 9, 8, 7, 4, 5]
阅读全文