コンテンツにスキップ

Pythonのリストの中のリストを使いこなす方法

[

Pythonリストのリストのフラット化方法

Pythonで、データを操作する際に、ネストされたリストのリストとしてデータがあることがあります。一般的な操作として、このデータをPythonで1次元のリストに「フラット化」することが求められます。リストのフラット化とは、行列などの多次元リストを1次元のリストに変換することを指します。

リストをフラット化するとはどういうことかをより具体的に説明するために、以下の数値の行列があるとします。

matrix = [
[9, 3, 8, 3],
[4, 5, 2, 8],
[6, 4, 3, 1],
[1, 0, 4, 5],
]

変数matrixは、4つのネストされたリストを含むPythonリストを保持しています。各ネストされたリストは行を表しており、各行は4つの要素または数字を保持しています。この行列を次のようなリストに変換したいとします。

[9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5]

このように、行列をフラット化して上記のような1次元のリストを取得するにはどうすれば良いでしょうか?このチュートリアルでは、Pythonでこれを行う方法を学びます。

forループを使ってリストのリストをフラット化する方法

Pythonでリストのリストをフラット化するにはどうすれば良いでしょうか?一般に、リストのリストをフラット化するには、次の手順を適用することができます。

  1. フラット化されたデータを保存するための新しい空のリストを作成する。
  2. 元のリスト内の各ネストされたリストまたはサブリストを繰り返し処理する。
  3. 現在のサブリストの各要素をフラット化されたデータのリストに追加する。
  4. フラット化されたデータを含む結果のリストを返す。

matrixの例でこれらの手順をPythonコードでどのように表現するかを示します。

def flatten_extend(matrix):
flat_list = []
for row in matrix:
flat_list.extend(row)
return flat_list

flatten_extend()内で、まずflat_listという名前の新しい空のリストを作成します。これは、matrixから抽出したフラット化されたデータを保存するために使用されます。次に、matrixの内部またはネストされたリストを繰り返し処理するためのループを開始します。この例では、現在のネストされたリストを表すために名前rowを使用しています。

次のコードを実行して、関数が期待どおりに動作するか確認してみてください。