広告スペース(バナー)
🐍Python レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向8▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 43 / 69
リストの平坦化(flatten)
このレッスンでは、リストの平坦化(flatten)を再帰関数で実装する方法を学び、入れ子構造のデータを扱えるようになることを目標にします。「Python リスト 平坦化」「Python 再帰関数」で調べている方向けです。
リストの中に入れ子になったリストがあるとき、それを「平らな」1つのリストに展開することをflatten(平坦化)と呼びます。Pythonには専用の関数がないため、再帰関数で実装します。入れ子構造のJSONデータをフラットな一覧に変換したい場面などに応用できる、実務でも役立つテクニックです。
サンプルコードでは、flatten関数がisinstance(item, list)でリストかどうかを判定し、リストであれば自分自身を再帰的に呼び出して.extend()で結果を結合し、そうでなければ.append()で結果に追加しています。再帰関数はリストを見つけるたびに自分自身を呼び出す構造になっています。
初心者がよくつまずくのが、再帰関数には必ず「終わる条件」が必要だという点です。isinstance()でリストかどうかを判定し、リストでなくなった時点で再帰が止まる、という仕組みを理解しておかないと、意図しない無限ループに陥ることがあります。
グループ化されたデータをまとめて扱いたいときや、深い階層のデータ構造を持つAPIレスポンスを整形したいときなど、実務でよく利用される処理です。再帰関数の考え方は、他のアルゴリズムを学ぶ上でも土台になる重要な考え方です。
Python
OUTPUT / 実行結果
💡 初回実行時はPythonエンジンの読み込みに数秒かかります。
🎯
ここまでできればゴール達成!
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
広告スペース(バナー)
広告スペース(記事内)