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

如何高效移除嵌套字典中列表内字典的指定键sub-key1?

高效移除嵌套字典中的指定键

方法1:列表推导式 + 字典推导式

这是纯Python环境下最简洁高效的写法,依托Python底层优化的推导式,比普通for循环执行效率更高:

data = {"key": [{"sub-key1": "value1", "sub-key2": "value2"}, {"sub-key1": "value3", "sub-key3": "value4"}]}
# 批量移除每个子字典中的sub-key1
data["key"] = [{k: v for k, v in d.items() if k != "sub-key1"} for d in data["key"]]

方法2:原地修改(内存效率最优)

如果不需要保留原字典的副本,直接在原对象上修改能大幅减少内存开销,适合处理大规模数据集:

for d in data["key"]:
    d.pop("sub-key1", None)  # 传入None作为默认值,避免键不存在时抛出异常

方法3:函数式风格写法(map配合lambda)

习惯函数式编程的话,可以用map()批量处理子字典,效率和列表推导式相近:

data["key"] = list(map(lambda d: {k: v for k, v in d.items() if k != "sub-key1"}, data["key"]))

效率对比

  • 原地修改的pop()方法内存效率最高,无需生成新字典对象;
  • 列表推导式和map()函数的CPU效率优于普通for循环,因为Python对内置推导式和函数做了底层优化;
  • DataFrame方案虽然直观,但会引入额外的库开销,纯字典结构的处理场景下,原生Python方法效率更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:05:01