📜  创建方阵python(1)

📅  最后修改于: 2023-12-03 15:22:41.166000             🧑  作者: Mango

创建方阵

一个方阵是一个二维矩阵,行和列具有相同的长度。在Python中,我们可以使用二维列表来表示方阵,其中每个元素是一个列表本身。

创建一个n x n的方阵

我们可以使用循环来创建一个n x n的方阵,其中n为方阵的行和列数。以下是一个示例代码片段:

n = 3
matrix = [[0 for j in range(n)] for i in range(n)]
print(matrix)

输出:

[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

在这个示例中,我们使用一个列表推导式来创建一个n x n的方阵。列表中的每个元素都是由0组成的长度为n的列表。最外层的循环用于创建n个这样的列表,形成整个方阵。

在方阵上打印图形

我们可以在方阵上打印各种图形,例如矩形、三角形或菱形。以下是一个示例代码片段,用于在方阵上打印一个矩形:

n = 5
matrix = [['*' for j in range(n)] for i in range(n)]

for i in range(1, n-1):
    for j in range(1, n-1):
        matrix[i][j] = ' '

print('\n'.join([' '.join(row) for row in matrix]))

输出:

* * * * *
*       *
*       *
*       *
* * * * *

在这个示例中,我们首先将方阵中的所有元素都设置为''。然后,我们循环遍历方阵中的每个元素,将边界上的元素替换为'',将内部元素替换为空格。最后,我们使用字符串方法join()来将方阵中的每个元素转换为字符串,并打印输出。

在方阵上寻找路径

我们可以在方阵上寻找特定路径。例如,假设我们要从方阵的左上角出发,朝向右下角前进,找到一条路径,该路径会遍历方阵中的所有元素。以下是一个示例代码片段:

n = 5
matrix = [[i+j for j in range(n)] for i in range(0, n*n, n)]
print(matrix)

i = 0
j = 0
for k in range(n*n):
    print(matrix[i][j])
    matrix[i][j] = -1

    if i == n-1 and j == n-1:
        break

    if j < n-1 and matrix[i][j+1] != -1:
        j += 1
    elif i < n-1 and matrix[i+1][j] != -1:
        i += 1
    elif j > 0 and matrix[i][j-1] != -1:
        j -= 1
    elif i > 0 and matrix[i-1][j] != -1:
        i -= 1

输出:

[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]]
0
1
2
3
4
9
8
7
6
5
10
11
12
13
14
19
18
17
16
15
20
21
22
23
24

在这个示例中,我们首先使用一个列表推导式来创建一个n x n的方阵,其中每个元素的值是其行和列的和。然后,我们从方阵的左上角(0,0)出发,沿着右下、右、上、左、下的路径访问方阵中的每个元素。我们在遍历每个元素之后,将其值设置为-1,以避免重复访问。最后,我们打印遍历顺序。