本篇主要介紹了對一個N*N的數組,如果進行90度的旋轉
首先,定義一個一維數組很簡單,如下:
a = [i for i in range(10)] print(a) -----結果----- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
此寫法與下面的寫法是相同的效果:
a = [] for i in range(10): a.append(i) print(a) -----結果----- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
那么二維數組應該如何進行創建呢,如下:
a = [[col for col in range(4)] for row in range(4)] #創建一個4*4的二維數組 print(a) -----結果---- [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
如果想要直觀一些,稍微調整下:
a = [[col for col in range(4)] for row in range(4)] for i in a: print(i) -----結果----- [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3]
接下來我們就要針對這個數組進行90度的旋轉,把
[0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3]
轉換為:
[0, 0, 0, 0] [1, 1, 1, 1] [2, 2, 2, 2] [3, 3, 3, 3]
要實現該功能,我們先把步驟拆為3步:
第一步:
第二步:
第三步:
代碼如下:
data = [[col for col in range(4)] for row in range(4)] for row_index, row in enumerate(data): for col_index in range(row_index, len(row)): tmp = data[col_index][row_index] #設置一個臨時變量 data[col_index][row_index] = row[col_index] data[row_index][col_index] = tmp print('') #防止打印結果看上去混亂,輸入一個空內容 for r in data: #分步驟打印出轉換結果 print(r) -----結果----- [0, 0, 0, 0] [1, 1, 2, 3] [2, 1, 2, 3] [3, 1, 2, 3] [0, 0, 0, 0] [1, 1, 1, 1] [2, 2, 2, 3] [3, 3, 2, 3] [0, 0, 0, 0] [1, 1, 1, 1] [2, 2, 2, 2] [3, 3, 3, 3] [0, 0, 0, 0] [1, 1, 1, 1] [2, 2, 2, 2] [3, 3, 3, 3]