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

如何遍历嵌套列表?Python多层嵌套列表扁平化函数实现求助

实现Python任意层级嵌套列表的扁平化函数

你需要的是一个能递归处理嵌套列表的函数,原函数仅手动实现了两层嵌套的遍历,无法处理更深层级的结构,递归是解决这类不确定层级嵌套问题的最优方案。

解决方案代码

def flatten_list(lista):
    lista_unica = []
    # 检查输入是否为列表,非列表返回None
    if not isinstance(lista, list):
        return None
    for item in lista:
        # 如果当前元素是列表,递归调用自身并扩展结果
        if isinstance(item, list):
            nested_flattened = flatten_list(item)
            if nested_flattened is not None:
                lista_unica.extend(nested_flattened)
        # 非列表元素直接添加
        else:
            lista_unica.append(item)
    return lista_unica

验证示例

示例1

输入:

lista = [1,2,[3, [4, 5, [6]], 7]]
print(flatten_list(lista))

输出:

[1, 2, 3, 4, 5, 6, 7]

示例2

输入:

lista = [1,2,['a','b'],[10]]
print(flatten_list(lista))

输出:

[1, 2, 'a', 'b', 10]

逻辑说明

  • 递归的核心是:遇到列表元素就重复调用扁平化函数,直到处理到非列表元素,再将其加入结果列表,无论嵌套多少层都能逐层拆解。
  • 使用isinstance替代type判断类型,能兼容继承自list的子类(虽题目未要求,但符合Python类型判断的最佳实践)。
  • 通过extend方法将递归返回的扁平化列表合并到结果中,严格保证元素顺序与原列表一致。

内容的提问来源于stack exchange,提问作者Valentin Ragusa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:40:28