如何在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 層巢狀列表的不同方法。透過利用這些方法,您可以有效地以結構化的方式組織和管理資料。

更新於:2023年8月4日

3000+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.