在 Python 中將列表拆分為子列表
本教程將討論在 Python 中將列表拆分為子列表。
使用 Python 中的列表推導和列表切片將列表拆分為子列表
在 Python 中,列表推導可以從現有的可迭代物件(如列表、元組等)建立新列表。列表切片可以訪問 Python 中的一系列列表元素。
我們可以使用列表切片和列表推導從先前存在的單個大列表中建立多個新的小列表。我們只需要指定所有小列表的長度。
使用此方法,如果剩餘元素小於指定長度,它們會自動被推入最後一個小列表。以下程式碼片段演示了此方法在 Python 中的工作實現。
original_data = ['This', 'is', 'the', 'original', 'list', 'of', 'data', 'or', 'the', 'original', 'data', 'list']
split_lists = [original_data[x:x+3] for x in range(0, len(original_data), 3)]
print(split_lists)
輸出:
[['This', 'is', 'the'], ['original', 'list', 'of'], ['data', 'or', 'the'], ['original', 'data', 'list']]
我們在 original_data
中建立了一個包含 12 個元素的列表,將其拆分為長度為 3 的較小列表,並將結果列表儲存到 split_lists
中。我們使用 x:x+3
作為列表切片的值範圍,其中 x
是介於 0 和 original_data
列表的總長度之間的值。
變數 x
增加了 3,因為我們已經在 range()
函式中指定了它。
在輸出中,我們得到 4 個包含 3 個元素的小列表。
使用 NumPy 中的 array_split()
函式將列表拆分為子列表
NumPy 庫中的 array_split()
方法 也可以將一個大陣列拆分為多個小陣列。
該函式獲取原始陣列和我們需要將陣列拆分成的塊數,並返回拆分後的塊。如果我們將列表而不是陣列作為輸入引數傳遞,則此方法可以正常工作。
以下程式碼片段演示了此方法在 Python 中的工作實現。
import numpy as np
original_data = ['This', 'is', 'the', 'original', 'list', 'of', 'data', 'or', 'the', 'original', 'data', 'list']
pieces = 4
new_arrays = np.array_split(original_data, pieces)
print(new_arrays)
輸出:
[array(['This', 'is', 'the'], dtype='<U8'), array(['original', 'list', 'of'], dtype='<U8'), array(['data', 'or', 'the'], dtype='<U8'), array(['original', 'data', 'list'], dtype='<U8')]
我們在 original_data
中初始化了一個包含 12 個元素的列表,就像我們在前面的示例中所做的那樣。然後,我們使用 pieces
變數指定我們想要將列表劃分為的片段數。
我們將 original_data
和 pieces
作為輸入引數傳遞給 array_split()
函式,並將結果儲存到 new_arrays
中。
最後,我們列印了 new_arrays
中的值。輸出顯示 4 個小列表,每個列表包含 3 個元素。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn