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

如何将包含子列表与字符串的嵌套列表扁平化为一维列表

嵌套列表扁平化方案

针对「同时包含子列表和非列表元素、需要展开为一维列表」的需求,分两种常用场景提供实现方案:


1. 仅两层嵌套(匹配你给出的示例场景)

如果你的输入列表最多只有一层子嵌套,没有更深的嵌套结构,直接用遍历判断即可,性能最优:

Input_List = [['a', 'b'],'c','d',['e', 'f']]
Final_List = []
for elem in Input_List:
    # 判断当前元素是否为列表,是就展开追加,否则直接追加
    if isinstance(elem, list):
        Final_List.extend(elem)
    else:
        Final_List.append(elem)

执行后得到的Final_List就是你需要的['a','b','c','d','e','f']。

也可以用更简洁的列表推导式写法:

Final_List = [sub_elem for elem in Input_List for sub_elem in (elem if isinstance(elem, list) else [elem])]

2. 任意深度嵌套(通用场景)

如果你的输入可能存在多层嵌套(例如[[['a'], 'b'], 'c', ['d', ['e']]]),可以用递归生成器实现通用的扁平化逻辑:

def flatten_list(nested):
    for item in nested:
        if isinstance(item, list):
            # 递归展开子列表
            yield from flatten_list(item)
        else:
            yield item

Input_List = [['a', 'b'],'c','d',['e', 'f']]
Final_List = list(flatten_list(Input_List))

该方案可以兼容任意层级的嵌套结构,自动展开所有底层非列表元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:57:02