You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:52:36