如何在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.