始める無料で始める

部分配列へのアクセス

NumPy 配列の要素にアクセスしてみましょう。あなたのタスクは、サイズが size の正方二次元配列 square を、渦巻き状のパターンに沿って要素を取り出したリストに変換することです。

Traversing the matrix in spiral way

特定のスライスに単純にアクセスするのではなく、より一般的な解法を for ループで定義してください(奇数サイズのすべての正方二次元配列で動作する必要があります)。

モジュール numpy はすでに np としてインポートされています。

イテラブルを逆順にする reversed() 関数を使用します。

この演習はコースの一部です

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)
コードを編集して実行