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

如何删除字典列表中所有匹配指定结构的字典元素?

解决方案

Python原生支持字典的相等性判断,直接通过列表推导式过滤符合冗余特征的元素即可,代码实现简洁高效:

# 原始数据列表
origin_data = [
    {'date': '', 'obsolete': False},
    {'date': '2021-01-02',
     'obsolete': True,
     'sku': '100940478',
     'warehouse_location': 'lagos',
     'quantity': '23'},
    {'date': '', 'obsolete': False},
    {'date': '2020-11-09',
     'obsolete': False,
     'sku': '100940479',
     'warehouse_location': 'lagos',
     'quantity': '84'},
    {'date': '', 'obsolete': False},
    {'date': '2021-01-15',
     'obsolete': True,
     'sku': '100940480',
     'warehouse_location': 'oyo',
     'quantity': '11'}
]

# 执行过滤,仅保留不匹配冗余结构的元素
filtered_data = [item for item in origin_data if item != {'date': '', 'obsolete': False}]

过滤后输出结果

[
    {'date': '2021-01-02',
     'obsolete': True,
     'sku': '100940478',
     'warehouse_location': 'lagos',
     'quantity': '23'},
    {'date': '2020-11-09',
     'obsolete': False,
     'sku': '100940479',
     'warehouse_location': 'lagos',
     'quantity': '84'},
    {'date': '2021-01-15',
     'obsolete': True,
     'sku': '100940480',
     'warehouse_location': 'oyo',
     'quantity': '11'}
]

如果后续需要调整冗余元素的判断规则,也可以单独校验字段值,写法更灵活:

filtered_data = [
    item for item in origin_data 
    if not (item.get('date', '') == '' and item.get('obsolete', True) is False)
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 00:36:03