清單是 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 模組來展平巢狀清單的 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中文網其他相關文章!