開始使用免費開始

存取子陣列

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

Traversing the matrix in spiral way

與其只取特定切片,你會用 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)
編輯並執行程式碼