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

如何用Python列表推导式展平含多列表与单个元素的列表?

处理混合嵌套/非嵌套元素的列表展平问题

你遇到的问题是列表中同时存在嵌套子列表和单个元素,普通列表推导式无法直接兼容两种元素类型。这里提供两种实用解决方法:

先明确你的列表结构:

l1 = [[1,2],[3,4],[6,7]]
l2 = [[1,2],[3,4],[6,7],8]

方法一:改进版列表推导式

通过判断元素是否为列表,将单个元素临时包装成单元素列表,统一遍历逻辑:

flattened_l2 = [e for sub in l2 for e in (sub if isinstance(sub, list) else [sub])]

执行后得到结果:[1, 2, 3, 4, 6, 7, 8]

方法二:递归生成器(通用型)

如果需要处理更深层级的嵌套列表(比如[[1,[2,3]],4]),递归生成器的适配性更强:

def flatten(lst):
    for item in lst:
        if isinstance(item, list):
            yield from flatten(item)
        else:
            yield item

flattened_l2 = list(flatten(l2))

该方法支持任意层级的嵌套结构,同样能输出正确的展平结果。

内容的提问来源于stack exchange,提问作者Vikas Garud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:39:54