1. 程式人生 > 實用技巧 >Python實現螺旋矩陣

Python實現螺旋矩陣

1,什麼是螺旋矩陣?

類似:

1

1 2
4 3

1 2 3
8 9 4
7 6 5

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

2,如何去打印出這個螺旋矩陣?

以4* 4 矩陣為例:

第一:列印上面一層

1 2 3 4

第二:列印右邊一層

1 2 3 4
    5
    6
    7

第三:列印下邊一層

1 2 3 4
    5
    6
10 9 8 7

第四:列印左邊一層

1 2 3 4
12 5
11 6
10 9 8 7

這樣一圈就列印好了,然後重複上述步驟進行第二層的列印。

3,python 程式碼實現

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
''' @File :Spiralmatrix.py @Description : Your input is 1 1 Your input is 2 1 2 4 3 Your input is 3 1 2 3 8 9 4 7 6 5 Your input is 4: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 @CreatTime :2020/08/27 13:56:03 @Author :Yunhgu @Version :1.0
''' def Spiralmatrix(Dimension): # 定義一個二維矩陣 array_lists = [[0 for j in range(Dimension)] for i in range(Dimension)] # 定義開始的值 num = 1 # 開始螺旋賦值 for i in range(Dimension//2+1): # 0 1 2 # 上邊賦值 for j in range(i, Dimension-i): array_lists[i][j] = num num
+= 1 # 右邊賦值 for j in range(i+1, Dimension-i): array_lists[j][Dimension-i-1] = num num += 1 # 下邊賦值 for j in range(Dimension-i-2, i, -1): array_lists[Dimension-i-1][j] = num num += 1 # 左邊賦值 for j in range(Dimension-i-1, i, -1): array_lists[j][i] = num num += 1 # 列印結果 for i in array_lists: for j in i: print(j, end='\t') print() if __name__ == "__main__": num = int(input('please input num: ')) Spiralmatrix(num)