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

如何快速移除嵌套列表中的空子列表?(Python列表推导式实现)

移除嵌套列表中的空列表元素

现有嵌套列表:

a = [[[1, 1], [], [2,2]], [[2,2], [], [1, 1]]]

需要转换为:

a = [[[1,1], [2,2]], [[2,2], [1,1]]]

直接用嵌套列表推导式就能实现,核心逻辑是过滤掉每一层子列表中的空列表元素:

a = [[[1, 1], [], [2,2]], [[2,2], [], [1, 1]]]
# 嵌套推导式:外层遍历顶级子列表,内层过滤空列表
a = [[sub for sub in lst if sub] for lst in a]
print(a)
# 输出:[[[1, 1], [2, 2]], [[2, 2], [1, 1]]]

这里if sub等价于if sub != [],因为空列表在布尔判断中会被视为False,非空列表为True,写法更简洁。

如果嵌套层级更深,还可以用递归函数处理任意深度的空列表:

def remove_empty_lists(lst):
    return [remove_empty_lists(item) if isinstance(item, list) else item for item in lst if item != []]

a = [[[1, 1], [], [2,2]], [[2,2], [], [1, 1]]]
a = remove_empty_lists(a)
print(a)
# 输出同样符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:07:07