如何使用Python创建指定深度的嵌套空列表对象?
实现指定嵌套深度的嵌套列表(Python)
假设我们需要根据输入的正整数n,生成一个嵌套深度恰好等于n的列表——最外层是一个列表,第二层列表嵌套在第一层里,第三层嵌套在第二层里,以此类推,最终形成类似[[[]]](当n=3时)的结构。以下是几种实用的实现方式:
方法一:循环迭代(直观易懂)
这种方式通过迭代逐步构建嵌套结构,适合新手理解:
# 接收用户输入的正整数 n = int(input("请输入一个正整数: ")) # 初始化最外层列表 result = [] current_layer = result # 循环n-1次,每次往当前最内层添加新的空列表 for _ in range(n - 1): new_layer = [] current_layer.append(new_layer) current_layer = new_layer # 输出结果 print(result)
逻辑说明:初始的result是第一层列表,我们用current_layer跟踪当前需要添加子列表的层级。每循环一次就创建一个新空列表,把它加入当前层级,再将current_layer指向这个新列表,直到完成n-1次嵌套(因为初始已经是1层结构)。
方法二:递归实现(简洁优雅)
如果偏好递归逻辑,可以用递归函数来生成嵌套列表:
def build_nested_list(depth): # 终止条件:深度为1时返回空列表 if depth == 1: return [] # 递归生成深度减1的嵌套列表,并将其包裹在一个新列表中 return [build_nested_list(depth - 1)] # 接收输入并生成结果 n = int(input("请输入一个正整数: ")) print(build_nested_list(n))
逻辑说明:当要求的深度为1时,直接返回空列表;深度大于1时,返回一个包含“深度减1的嵌套列表”的新列表,通过递归逐步构建出指定深度的嵌套结构。
方法三:简洁的一行式迭代
如果追求代码简洁,可以用更紧凑的迭代写法:
n = int(input("请输入一个正整数: ")) result = [] for _ in range(n - 1): result = [result] print(result)
逻辑说明:每次迭代都将当前的result包裹在一个新列表中,迭代n-1次后,就得到了深度为n的嵌套列表。
测试示例
- 输入
1,输出[] - 输入
2,输出[[]] - 输入
4,输出[[[[]]]]
内容的提问来源于stack exchange,提问作者Vexter
相关产品推荐
相关产品推荐

