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

如何删除列表中Folder键值含指定关键词的字典?

问题分析

你的代码存在两个核心问题:

  • 遍历列表时直接修改原列表:遍历过程中调用input_dict.remove(data_dict)会改变列表长度,导致迭代器跳过部分元素,无法完整检查所有字典。
  • 大小写敏感的匹配:关键词"Feature image"和Folder值里的"Feature Image"大小写不一致,导致原本应该被删除的字典无法被匹配到。
解决方案

采用创建新列表保留符合条件元素的方式,同时统一大小写消除匹配误差:

input_dict = [{'Key': 2296.0, 'Folder': '/Feature Annotated Image Localization/Amazon DE - Feature Image Localization/',
  'Parent task': 'Amazon DE  - 1019295902: Feature / Annotated Image Localization', 'Default task workflow': ''},
 {'Key': 2299.0, 'Folder': '/Feature Annotated Image Localization/Amazon DE',
  'Parent task': 'Amazon DE - 1025250536: Feature / Annotated Image Localization', 'Default task workflow': ''},
 {'Key': 2300.0, 'Folder': '/Feature Annotated Image Localization/Amazon DE - Feature Image Localization/',
  'Parent task': 'Amazon DE - 1025250536: Feature / Annotated Image Localization', 'Default task workflow': ''},
 {'Key': 1741.0, 'Folder': '/BBY US RDX/', 'Parent task': 'Best Buy US RDX - 999936599: Syndicated Content Request',
  'Default task workflow': '', 'Default project workflow': ''}]

keywords = ["RDX","Feature image","Spec sheet"]
# 统一转为小写,消除大小写差异
lower_keywords = [kw.lower() for kw in keywords]

# 生成新列表,只保留Folder值不包含任何关键词的字典
filtered_list = []
for data_dict in input_dict:
    folder_value = data_dict.get('Folder', '').lower()
    if not any(kw in folder_value for kw in lower_keywords):
        filtered_list.append(data_dict)

print(filtered_list)
代码说明
  • 先将所有关键词转为小写,同时把每个字典的Folder值也转为小写,确保匹配不受大小写影响。
  • 遍历原列表时,将符合保留条件的字典添加到新列表中,避免修改原列表导致的迭代异常。
  • 使用dict.get('Folder', '')处理可能不存在Folder键的情况,避免KeyError。

运行后输出与预期一致:

[{'Key': 2299.0, 'Folder': '/Feature Annotated Image Localization/Amazon DE', 'Parent task': 'Amazon DE - 1025250536: Feature / Annotated Image Localization', 'Default task workflow': ''}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:01:22