如何在Python中建立N層巢狀列表?
在 Python 中處理資料時,您可能需要將資料組織成 N 層巢狀列表。這種資料結構通常稱為“列表的列表”,允許您以結構化和靈活的方式儲存和訪問多個數據集。主列表中的每個單獨列表可以包含不同型別的資料,甚至可以包含其他巢狀列表。本文將探討在 Python 中建立 N 層巢狀列表的各種方法,為您提供有效管理和操作資料的知識和工具。
無論您是處理多維資料集還是複雜的資料結構,瞭解如何建立和使用 N 層巢狀列表都將增強您的 Python 程式設計技能,並使您能夠更有效地處理各種資料場景。
現在讓我們探索在 Python 中建立 N 層巢狀列表的不同方法。
使用簡單的乘法
定義巢狀列表的維度。假設我們想要建立一個大小為 n 的列表,每個子列表包含 m 個元素。
建立一個列表推導式,其中每個元素都是一個包含 m 個空元素的子列表。
將此列表推導式乘以 n 以建立 n 個子列表的列表。
考慮以下程式碼。
示例
n = 3 # Number of sublists m = 4 # Number of elements in each sublist # Creating the list of N-lists using simple multiplication nested_list = [[] for _ in range(m)] * n # Displaying the nested list print(nested_list)
解釋
在這種方法中,我們使用列表推導式建立一個包含 m 個空元素的子列表。
透過將此子列表乘以 n,我們建立了一個包含 n 個子列表的列表,其中每個子列表都引用列表推導式中建立的同一個子列表。
這種方法在程式碼簡潔性方面效率很高,但需要注意的是,修改一個子列表會影響其他子列表,因為它們引用的是同一個物件。
輸出
[[], [], [], [], [], [], [], [], []]
使用迴圈
定義巢狀列表的維度。
建立一個空列表來儲存子列表。
使用迴圈迭代 n 次。
在迴圈內,建立一個新的空子列表並將其新增到主列表中。
考慮以下程式碼。
示例
n = 3 # Number of sublists
m = 4 # Number of elements in each sublist
# Creating the list of N-lists using a loop
nested_list = []
for _ in range(n):
sublist = []
nested_list.append(sublist)
# Displaying the nested list
print(nested_list)
解釋
在這種方法中,我們使用迴圈迭代 n 次,在每次迭代中建立一個新的空子列表。
然後將每個子列表新增到主列表中,從而得到一個包含 n 個子列表的列表。
與簡單的乘法方法相比,這種方法在子列表之間提供了更大的靈活性和獨立性。
輸出
[[], [], []]
使用列表推導式
定義巢狀列表的維度。
建立一個列表推導式,其中每個元素都是一個新的空子列表。
迭代 n 次以建立 n 個子列表。
考慮以下程式碼。
示例
n = 3 # Number of sublists
m = 4 # Number of elements in each sublist
# Creating the list of N-lists using a loop
nested_list = []
for _ in range(n):
sublist = []
nested_list.append(sublist)
# Displaying the nested list
print(nested_list)
解釋
這種方法利用列表推導式建立 n 個子列表,其中每個子列表最初都是空的。
列表推導式迭代 n 次,並在每次迭代中建立一個新的空子列表,從而得到一個包含 n 個子列表的列表。
這種方法提供了一種簡潔高效的方式來建立所需的 N 層巢狀列表。
輸出
[[], [], []]
使用itertools
匯入itertools模組。
定義巢狀列表的維度。
使用itertools.repeat()函式重複空列表n次。
將重複的物件轉換為列表。
考慮以下程式碼。
示例
import itertools n = 3 # Number of sublists m = 4 # Number of elements in each sublist # Creating the list of N-lists using itertools nested_list = list(itertools.repeat([], n)) # Displaying the nested list print(nested_list)
解釋
在這種方法中,我們匯入itertools模組以使用repeat()函式。
repeat()函式用於重複空列表n次。
我們使用list()函式將重複的物件轉換為列表,從而得到一個包含n個子列表的列表。
這種方法提供了一種使用itertools模組簡潔建立所需N層巢狀列表的方法。
輸出
[[], [], []]
結論
總之,本文探討了在 Python 中建立 N 層巢狀列表的不同方法。透過利用這些方法,您可以有效地以結構化的方式組織和管理資料。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP