Python程式:不使用遞迴展平列表


當需要在不使用遞迴技術的情況下展平列表時,可以使用 lambda 函式、'sum' 方法、'map' 方法和 'isinstance' 方法。

列表可以用來儲存異構值(即任何資料型別的資料,如整數、浮點數、字串等)。

‘isinstance’ 方法檢查給定引數是否屬於特定資料型別。

匿名函式是在沒有名稱的情況下定義的函式。通常,Python 中的函式使用 'def' 關鍵字定義,但匿名函式是在 'lambda' 關鍵字的幫助下定義的。它接受一個表示式,但可以接受任意數量的引數。它使用該表示式並返回其結果。

map 函式將給定的函式/操作應用於可迭代物件(如列表、元組)中的每個專案。它返回一個列表作為結果。

‘sum’ 方法將可迭代物件中存在的數值相加。

示例

下面是演示:

 線上演示

my_list = [[[11,[[32]],[[[53]]]],[[64],75]], [[6, 89, 99]]]
flattened_list = lambda my_list: sum(map(flattened_list,my_list),[]) if isinstance(my_list,list) else [my_list]
print("The original list is : ")
print(my_list)
print("The flattened list is :")
print(flattened_list(my_list))

輸出

The original list is :
[[[11, [[32]], [[[53]]]], [[64], 75]], [[6, 89, 99]]]
The flattened list is :
[11, 32, 53, 64, 75, 6, 89, 99]

解釋

  • 定義了一個巢狀列表,並在控制檯上顯示。
  • 使用 'sum' 方法將元素加起來,並使用 'map' 方法將其應用於每個元素。
  • 此操作的結果分配給一個變數。
  • 它在控制檯上顯示為輸出。

更新於: 2021年3月12日

178 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.