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

Python中如何从列表移除嵌套空字典?求类似JS的简洁实现

Python 简洁过滤空值字典项的方案

原始数据结构

data = [
    {
        "2022": [
            {
                "Title": "Title"
            },
            {
                "Title": "Title 2"
            }
        ]
    },
    {
        "2023": []
    },
    {
        "2024": []
    }
]

需求

移除列表中对应值为空列表的字典项(如包含"2023": []、"2024": []的字典)。

原循环实现的问题

你提供的循环写法存在隐患:遍历列表时直接修改原列表(调用remove)会导致遍历索引错乱,可能跳过部分元素,无法正确过滤所有空值项。

类似JS filter的简洁Python方案

Python可以用列表推导式实现和JS filter一样简洁的效果:

data = [item for item in data if len(next(iter(item.values()))) > 0]

代码说明

  • item.values() 获取字典中的所有值,这里每个字典只有一个键值对
  • next(iter(item.values())) 取出字典的第一个(也是唯一的)值
  • 判断该值的长度是否大于0,符合条件的字典项会被保留到新列表中

执行后data将只保留包含"2022"的字典项,空值项被过滤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:10:34