Python
 Computer >> コンピューター >  >> プログラミング >> Python

再帰を使用してネストされたリストをフラット化するPythonプログラム


再帰手法を使用して特定のネストされたリストをフラット化する必要がある場合は、単純なインデックス付けと「isinstance」メソッドを再帰とともに使用できます。

再帰は、より大きな問題の小さなビットの出力を計算し、これらのビットを組み合わせて、より大きな問題の解決策を提供します。

以下は同じのデモンストレーションです-

def flatten_list(my_list):
   if my_list == []:
      return my_list
   if isinstance(my_list[0], list):
      return flatten_list(my_list[0]) + flatten_list(my_list[1:])
   return my_list[:1] + flatten_list(my_list[1:])
my_list = [[1,2],[3,4], [90, 11], [56, 78], [[34,56]]]
print("The list is :")
print(my_list)
print("The list after flattening is : ")
print(flatten_list(my_list))

出力

The list is :
[[1, 2], [3, 4], [90, 11], [56, 78], [[34, 56]]]
The list after flattening is :
[1, 2, 3, 4, 90, 11, 56, 78, 34, 56]

説明

  • 「flatten_list」という名前のメソッドが定義されており、リストをパラメーターとして受け取ります。
  • リストの最初の要素のデータ型を確認します。
  • リストに一致する場合は、最初の要素と最後から2番目の要素が連結されて表示されます。
  • これにより、ネストされたリストがフラット化されます。
  • それ以外の場合は、最初の要素が省略され、リストが最初に反転され、通常のリストが結合されて、出力として返されます。
  • 関数の外部で、ネストされたリストが定義され、コンソールに表示されます。
  • このメソッドは、リストをパラメーターとして渡すことによって呼び出されます。
  • 出力はコンソールに表示されます。

  1. Python-2Dリストをフラット化する方法

    リストは、順序付けられて変更可能なコレクションです。 Pythonでは、リストは角かっこで囲まれています。インデックス番号を参照してリストアイテムにアクセスします。負のインデックス付けとは、最後から始まることを意味し、-1は最後のアイテムを指します。範囲を開始する場所と終了する場所を指定することにより、インデックスの範囲を指定できます。範囲を指定すると、戻り値は指定された項目を含む新しいリストになります。 例 # using chain.from_iterables # import chain from itertools import chain ini_list = [[1, 2, 3]

  2. Pythonでネストされたリストイテレータをフラット化する

    整数のネストされたリストがあるとします。それを平坦化するためにイテレータを実装する必要があります。各要素は整数またはリストのいずれかです。そのリストの要素は、整数または他のリストの場合もあります。したがって、入力が[[1、1]、2、[1、1]]の場合、出力は[1、1、2、1、1]になります。 これを解決するには、次の手順に従います- 初期化セクションでは、ネストされたリストを取得します。これは次のように機能します- resを空のリストとして設定し、インデックス:=0、getVal(nestedList)を呼び出します getVal()はnestedIntegersを取り、こ