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

如何移除JSON列表中某键值包含指定字符的字典?

如何移除列表中包含特定字符的字典元素?

Hey! 我注意到你想要从results列表里删掉那些price_str字段包含"await"的字典条目,但你当前的代码存在一个容易踩的坑——在遍历列表的同时直接用remove()修改它,会导致遍历索引混乱,可能漏掉某些元素的检查。

举个实际场景:如果你的results里有多个符合移除条件的元素,比如[A, B, C]其中A和B都要删,当你删掉A之后,列表变成[B, C],但循环会直接跳到下一个索引(原来的第二个位置,现在是C),B就被跳过检查了。虽然你的示例里只有两个元素刚好能生效,但换个场景就会出问题。

更可靠的解决方法

最稳妥且简洁的方式是用列表推导式,基于原列表生成一个只保留符合要求元素的新列表,完全避开遍历修改的问题:

# 假设你的data是包含多个带results字段的字典的列表
for item in data:
    # 过滤掉price_str包含"await"的元素
    item["results"] = [entry for entry in item["results"] if "await" not in entry["price_str"]]

如果你的results本身就是顶层列表(不是嵌套在其他字典里),那代码更简单:

results = [entry for entry in results if "await" not in entry["price_str"]]

验证你的示例输入

用你提供的输入测试:

输入的results:
[{ "price_str": "results awaited", "marque": "samsung" }, { "price_str": "sold", "marque": "apple" }]

运行上面的代码后,就能得到你想要的输出:

输出的results:
[{ "price_str": "sold", "marque": "apple" }]

这种方法不仅可读性强,执行效率也比循环+remove更高,是Python里处理列表过滤的常用方式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:11:02