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

如何用一行列表推导式将嵌套列表转为一维列表?

嵌套列表转一维列表的列表推导式正确写法

单层嵌套场景

如果你的嵌套列表是单层嵌套(例如 lst = [[1,2], [3,4], [5]] 这类结构),正确的一行列表推导式需要两层循环,写法如下:

flat_lst = [item for sublist in lst for item in sublist]

该写法完全等价于你原本使用的循环+extend逻辑:

flat_lst = []
for sublist in lst:
    flat_lst.extend(sublist)

多层嵌套场景

如果是多层嵌套(例如 lst = [[1, [2,3]], [4, [5, [6]]]]),两层列表推导式无法完成扁平化,这时可以使用递归式列表推导式(Python 3.3及以上版本支持):

def flatten(lst):
    return [item for sublist in lst for item in (flatten(sublist) if isinstance(sublist, list) else [sublist])]

flat_lst = flatten(lst)

注:递归推导式可读性相对较弱,若对代码可读性要求较高,更推荐使用专门的扁平化函数,但如果必须用一行推导式实现,这是可行方案。

内容的提问来源于stack exchange,提问作者Roman Toasov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:22:02