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

如何按嵌套值过滤Python字典并返回完整条目?

解决方案:筛选嵌套字典中Hardware为'C'的条目

直接用字典推导式就能高效解决这个问题,这是最符合Python风格的写法,一行代码就能完成筛选,同时保留原外层键:

SomeDict = {
    'al': {'Hardware': 'K', 'speed': '100'},
    'ar2': {'Hardware': 'C', 'speed': ''},
    'ar3': {'Hardware': 'C', 'speed': ''}
}

# 核心筛选逻辑
FilterMagic_Desired_Result = {key: sub_dict for key, sub_dict in SomeDict.items() if sub_dict.get('Hardware') == 'C'}

print(FilterMagic_Desired_Result)
# 输出:{'ar2': {'Hardware': 'C', 'speed': ''}, 'ar3': {'Hardware': 'C', 'speed': ''}}

代码说明:

  • SomeDict.items() 直接遍历原字典的所有外层键和对应的子字典,无需嵌套循环;
  • sub_dict.get('Hardware') 安全获取子字典中的Hardware值(如果子字典没有这个键,会返回None,不会触发KeyError);
  • 只有当Hardware值等于'C'时,才将当前的外层键和子字典保留到新字典中。

对比冗余写法

你提到的双重循环属于冗余写法,比如这种:

FilterMagic_Desired_Result = {}
for key in SomeDict:
    sub_dict = SomeDict[key]
    for inner_key in sub_dict:
        if inner_key == 'Hardware' and sub_dict[inner_key] == 'C':
            FilterMagic_Desired_Result[key] = sub_dict

这种写法没必要遍历子字典的所有键,直接判断目标键的值即可,字典推导式不仅更简洁,可读性也更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:51:36