コンテンツにスキップ

Pythonリストのフラット化を簡単に説明

[

Pythonリストフラット化

フラット化とは、Pythonで多次元リスト(行列など)を一次元リストに変換する操作です。データとしてネストされたリストがある場合、一般的にフラット化する必要があります。

フラット化の具体的なイメージを持つために、以下の数値の行列があるとしましょう。

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]

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

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

Pythonでリストのリストをフラット化するにはどうすればよいでしょうか?一般的に、リストのリストをフラット化するためには、以下の手順を明示的にまたは暗黙的に実行することができます。

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

matrixの例を引き続き使用して、forループと.extend()メソッドを使用してこれらの手順を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という名前を使用します。

では、以下のコードを実行して、関数が期待どおりの結果を返すか確認してみましょう。