存取子陣列
來操作 NumPy 陣列的元素吧!你的任務是把一個大小為 size 的正方形二維陣列 square,依照螺旋路徑轉換為一個串列:

與其只取特定切片,你會用 for 迴圈實作一個更通用的解法(此解法應適用於所有邊長為奇數的正方形二維陣列)。
模組 numpy 已經以 np 匯入。
你會需要 reversed() 函式,它可以反轉一個 Iterable。
本練習屬於課程
Python 程式面試題實作練習
練習說明
- 將紅色箭頭標示的每一段轉換為串列。
- 將綠色箭頭標示的每一段轉換為串列。
- 將藍色箭頭標示的每一段轉換為串列。
- 將洋紅色箭頭標示的每一段轉換為串列。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
spiral = []
for i in range(0, size):
# Convert each part marked by any red arrow to a list
spiral += list(square[i, ____:____])
# Convert each part marked by any green arrow to a list
spiral += list(square[____:____, size-i-1])
# Convert each part marked by any blue arrow to a list
spiral += list(reversed(square[size-i-1, ____:____]))
# Convert each part marked by any magenta arrow to a list
spiral += list(reversed(square[____:size-i-1, ____]))
print(spiral)