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

如何使用列表推导式展平嵌套列表的最后一层?

如何展平嵌套列表的最后一层?

给定如下嵌套列表结构:

lista = [['a'],['b']]
listb = [['c']]
nested = [lista, listb]

# 当前结构:[[['a'], ['b']], [['c']]]
# 目标:将最后一层单元素列表展平,得到 [['a', 'b'], ['c']]

# 尝试的代码未达到预期
[[x for x in y] for y in nested]
# 输出仍为:[[['a'], ['b']], [['c']]]

由于最后一层始终是单元素列表,可以通过以下两种方式实现展平:

方法一:提取单元素列表的唯一元素

直接在列表推导式中访问每个内层列表的第一个元素:

result = [[item[0] for item in sublist] for sublist in nested]
print(result)  # 输出:[['a', 'b'], ['c']]

方法二:合并内层列表

利用sum()函数将子列表中的单元素列表合并为一个列表:

result = [sum(sublist, []) for sublist in nested]
print(result)  # 输出:[['a', 'b'], ['c']]

补充背景:最后一层的单元素列表结构,源于使用了类似[myfunc(x) for x in y for y in other_nested_list]的列表推导式(注:该推导式存在循环顺序错误,正确的嵌套循环推导式应将外层循环前置,即[myfunc(x) for y in other_nested_list for x in y],而myfunc的返回值为单元素列表,最终形成了三层嵌套结构)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:35:28