Python函数内如何动态初始化列表的列表?
如何在Python中动态初始化可变子列表长度的列表的列表?
当然可以实现,Python的列表本身就是动态结构,完全支持创建子列表数量与输入一致、每个子列表长度可变的嵌套列表,以下是几种实用方法:
方法1:遍历+动态构建子列表
直接遍历输入的嵌套列表,为每个子列表创建对应的空列表,再根据你的算法筛选元素并添加进去:
def process_nested_list(input_list): result = [] for sublist in input_list: new_sublist = [] # 这里替换成你的元素移除/筛选逻辑,示例:保留偶数 for num in sublist: if num % 2 == 0: new_sublist.append(num) result.append(new_sublist) return result # 测试用例 test_input1 = [[1,2,3,4],[5,6,7],[8,9]] print(process_nested_list(test_input1)) # 输出: [[2, 4], [6], [8]]
方法2:列表推导式(简洁版)
如果你的筛选逻辑比较简单,用列表推导式可以一行生成结果,同样是动态适配子列表长度:
def process_nested_list(input_list): # 内层推导式处理每个子列表,外层推导式生成对应数量的子列表 return [[num for num in sublist if num % 2 == 0] for sublist in input_list] test_input2 = [[1,2],[3,4,5,6],[7,8,9],[10,11,12,13]] print(process_nested_list(test_input2)) # 输出: [[2], [4, 6], [8], [10, 12]]
方法3:先初始化空结构再填充
如果需要先创建一个和输入子列表数量一致的空嵌套列表,后续再逐步填充元素,可以这样做:
def process_nested_list(input_list): # 初始化包含对应数量空列表的嵌套结构 result = [[] for _ in input_list] # 遍历输入并通过索引填充对应子列表 for idx, sublist in enumerate(input_list): # 自定义处理逻辑,示例:保留大于5的元素 for num in sublist: if num > 5: result[idx].append(num) return result
以上方法都不需要提前固定子列表的长度,完全由你的元素筛选算法动态决定,完美匹配你的需求。
内容的提问来源于stack exchange,提问作者bardulia
相关产品推荐
相关产品推荐

