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

如何从嵌套字典构成的列表中删除指定的目标字典元素

解决方案

Python 天然支持嵌套字典的全等判断,只要两个字典所有层级的键值对完全匹配,==运算符就会返回True,不需要单独逐层对比键值,可直接基于该特性过滤目标元素。

方案1:列表推导式(推荐)

直接生成过滤后的新列表,性能稳定且不会出现遍历删除的索引错位问题:

# 原始嵌套字典列表
original_list = [
    {'rule': {'actions': {'allow': False}, 'dl_type': 2048, 'ipv4_dst': '192.168.50.0/24', 'ipv4_src': '192.168.50.20'}},
    {'rule': {'actions': {'allow': False}, 'dl_type': 2048, 'ipv4_dst': '192.168.50.0/24', 'ipv4_src': '192.168.50.10'}},
    {'rule': {'actions': {'allow': True}}}
]
# 需要删除的目标字典
target = {'rule': {'actions': {'allow': False}, 'dl_type': 2048, 'ipv4_dst': '192.168.50.0/24', 'ipv4_src': '192.168.50.10'}}

# 过滤掉匹配的元素
filtered_list = [item for item in original_list if item != target]

# 如需直接修改原列表,直接赋值即可
# original_list = filtered_list

方案2:原列表遍历删除

如果需要直接在原列表上操作,必须倒序遍历索引避免正序删除导致的元素错位漏检:

for idx in range(len(original_list)-1, -1, -1):
    if original_list[idx] == target:
        del original_list[idx]

说明:字典的全等判断不依赖键的排列顺序,只要所有层级的键值对完全一致就会判定为相等,无需担心键的排序差异问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:36:08