python-二維數組實現90度旋轉


本篇主要介紹了對一個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]

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM