首頁  >  文章  >  後端開發  >  使用Python將清單展開為單獨的元素

使用Python將清單展開為單獨的元素

WBOY
WBOY轉載
2023-09-08 23:57:03873瀏覽

使用Python將清單展開為單獨的元素

清單是 Python 中一個強大的資料結構,可以保存許多不同類型的值。我們可能會遇到嵌套列表,其中項目本身就是列表。在這種情況下,扁平化清單並從層次結構中檢索各個元素可能至關重要。在Python中,我們有一些內建函數 - chain()、extend()和append(),可用來解決將清單扁平化為單一元素的問題。

讓我們舉個例子:

輸入

# Flatten List
my_list = [[11, 21, 31], [20, 30, 40], [4, 5, 6], [1, 2, 3]]

輸出

# individual element in the list
[11, 21, 31, 20, 30, 40, 4, 5, 6, 1, 2, 3]

文法

所有範例均使用以下語法 -

itertools.chain()

itertools是提供chain()內建函數的模組名稱。此函數將多個迭代器作為參數傳回單一迭代器。

extend()

extend() 是 Python 中的內建方法,用於將特定清單元素新增至目前清單的末端。

append()

append()是Python中的內建方法,可以將元素加入到清單末尾。

[[],[],[]]

上面的表示說明了巢狀清單結構。

使用巢狀循環

程式使用巢狀的 for 迴圈來迭代子列表,並使用append()方法來幫助

範例

在以下範例中,透過定義名為 flatten_list 的函數來啟動程序,該函數接受參數為 lst(以接收輸入清單的值)。然後在變數 flattened 中建立空列表,該列表將儲存包含各個元素的列表。接下來,使用巢狀的 for 迴圈迭代列表中的每個子列表,並使用append() 將子列表轉換為單一元素。然後使用函數 return 來取得新列表。現在在變數nested_list中建立Flatten列表,並使用與呼叫函數中的參數相同的變數將其儲存在變數f_list中。最後,我們在變數 f_list 的幫助下列印結果。

def flatten_list(lst):
    flattened = []
    for sublist in lst:
        for item in sublist:
            flattened.append(item)
    return flattened

# Create the flattened list
nested_list = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
# Calling function used in the variable
f_list = flatten_list(nested_list)
print("The individual element in the list:\n", f_list)

輸出

 The individual element in the list:
 [10, 20, 30, 40, 50, 60, 70, 80, 90]

使用列表理解

程式使用清單理解,其中實作嵌套 for 迴圈以將 Flatten List 轉換為單一元素。

範例

在以下範例中,透過定義名為 flatten_list 的函數開始程序,該函數接受名為 lst 的參數,該參數儲存輸入清單的值。然後使用列表理解返回函數,其中嵌套的 for 循環迭代到子列表中。接下來,建立展平清單並將其儲存在變數 n_list 中。然後在變數 f_list 中使用呼叫函數,並在 print 函數中使用相同的變數來取得結果。

def flatten_list(lst):
    return [item for sublist in lst for item in sublist]

# Create the flatten list
n_list = [[11, 21, 31], [41, 51, 61], [71, 81, 91]]
# calling function used in the variable
f_list = flatten_list(n_list)
print("The individual element in the list:\n", f_list)

輸出

 The individual element in the list:
 [11, 21, 31, 41, 51, 61, 71, 81, 91]

使用 itertools.chain() 函數

這是一個使用 itertools 模組來展平巢狀清單的 Python 程式。 flatten_list 函數採用巢狀清單作為參數,並傳回一個包含子清單中所有元素的新清單。 itertools.chain 函數將所有子列表組合成一個可迭代對象,然後使用 list 函數將其轉換為列表。然後,程式建立一個名為nested_list的巢狀列表,使用該列表作為參數呼叫flatten_list函數,並將結果指派給變數flattened_list。

範例

在下面的範例中,透過匯入名為 itertools 的模組來開始程序,這將有助於將扁平列表轉換為單獨的元素。然後開始建立接受參數lst的函數flatten_list

#
import itertools
def flatten_list(lst):
    return list(itertools.chain(*lst))
# Create the flatten list
nested_list = [[12, 22, 32], [42, 52, 62], [72, 82, 92]]
# Calling function used in the variable
flattened_list = flatten_list(nested_list)
print("The individual element in the list:\n", flattened_list)

輸出

 The individual element in the list:
 [12, 22, 32, 42, 52, 62, 72, 82, 92]

使用遞迴

程式使用遞歸函數來處理展平列表,並使用內建函數 isintance() 它將檢查物件類型的條件,並協助產生單一元素的展平列表。

範例

在下面的範例中,程式透過提取每個元素來迭代地展平構造的清單。然後,它會列印包含嵌套列表中所有單一元素的展平列表。

def flatten_list(lst):
    emp_list = []
    for item in lst:
        if isinstance(item, list):
            emp_list.extend(flatten_list(item))
        else:
            emp_list.append(item)
    return emp_list


# Create the flatten list
nested_list = [[81, 82, 83], [84, 85, 86], [87, 88, 89, 99, 100]]
f_list = flatten_list(nested_list)
print("The individual element in the list:\n", f_list)

輸出

 The individual element in the list:
 [81, 82, 83, 84, 85, 86, 87, 88, 89, 99, 100]

結論

我們討論了解決問題陳述的各種方法。我們了解扁平化清單將如何為我們提供一項基本技能,使我們能夠更有效地處理複雜的資料結構並存取單一元素。此外,無論我們是從事資料處理、演算法問題解決或任何其他 Python 程式設計作業或任務,了解如何展平清單都會很有用。

以上是使用Python將清單展開為單獨的元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除