使用python写一个3*3的蛇形矩阵
时间: 2023-04-08 19:04:39 浏览: 153
好的,这个问题可以回答。以下是使用Python编写3*3的蛇形矩阵的代码:
```
n = 3
matrix = [[0] * n for i in range(n)]
num = 1
for i in range(n):
if i % 2 == 0:
for j in range(n):
matrix[i][j] = num
num += 1
else:
for j in range(n-1, -1, -1):
matrix[i][j] = num
num += 1
print(matrix)
```
输出结果为:
```
[[1, 2, 3], [6, 5, 4], [7, 8, 9]]
```
希望这个代码可以帮到你!
相关问题
用python写出m*n的蛇形矩阵,多种方式
方法一:使用二维列表
```python
def snake_matrix(m, n):
matrix = [[0] * n for _ in range(m)]
num = 1
for i in range(m):
if i % 2 == 0:
for j in range(n):
matrix[i][j] = num
num += 1
else:
for j in range(n - 1, -1, -1):
matrix[i][j] = num
num += 1
return matrix
```
方法二:使用一维列表
```python
def snake_matrix(m, n):
matrix = [0] * (m * n)
num = 1
for i in range(m):
if i % 2 == 0:
for j in range(n):
matrix[i * n + j] = num
num += 1
else:
for j in range(n - 1, -1, -1):
matrix[i * n + j] = num
num += 1
return [matrix[i * n:(i + 1) * n] for i in range(m)]
```
方法三:使用numpy数组
```python
import numpy as np
def snake_matrix(m, n):
matrix = np.zeros((m, n), dtype=int)
num = 1
for i in range(m):
if i % 2 == 0:
for j in range(n):
matrix[i][j] = num
num += 1
else:
for j in range(n - 1, -1, -1):
matrix[i][j] = num
num += 1
return matrix
```
蛇形矩阵python
蛇形矩阵是一种特殊的矩阵形式,其中数字按照蛇形填充到矩阵中。在Python中,我们可以使用numpy库来生成蛇形矩阵。首先,我们可以使用np.zeros()函数创建一个全零的矩阵,然后使用循环将数字按照蛇形填充到矩阵中。下面是一个生成蛇形矩阵的示例代码:
```python
import numpy as np
def generate_snake_matrix(n, m):
matrix = np.zeros((n, m), dtype=np.int16)
num = 1
row_start = 0
row_end = n - 1
col_start = 0
col_end = m - 1
while num <= n * m:
# 从左到右填充
for col in range(col_start, col_end + 1):
matrix[row_start][col] = num
num += 1
row_start += 1
# 从上到下填充
for row in range(row_start, row_end + 1):
matrix[row][col_end] = num
num += 1
col_end -= 1
# 从右到左填充
for col in range(col_end, col_start - 1, -1):
matrix[row_end][col] = num
num += 1
row_end -= 1
# 从下到上填充
for row in range(row_end, row_start - 1, -1):
matrix[row][col_start] = num
num += 1
col_start += 1
return matrix
# 示例调用
n = 4
m = 4
snake_matrix = generate_snake_matrix(n, m)
print(snake_matrix)
```