使用遞迴的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”的方法,它以列表作為引數。
  • 它檢查列表中第一個元素的資料型別。
  • 如果它與列表匹配,則連線並顯示第一個元素以及第二個元素到最後一個元素。
  • 這導致巢狀列表被展平。
  • 否則,第一個元素將被排除在外,列表首先被反轉,然後與普通列表組合,並作為輸出返回。
  • 在函式外部,定義了一個巢狀列表,並在控制檯上顯示。
  • 透過將列表作為引數傳遞來呼叫該方法。
  • 輸出顯示在控制檯上。

更新於:2021年3月12日

971 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.