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

Python字典过滤函数默认返回空字典,求问题排查与修正

问题分析与解决方法

原代码的问题

  • 循环覆盖错误:每次遍历字典键时,都会无条件覆盖res的值。如果最后一个键不匹配name,之前找到的匹配结果会被清空,最终返回空字典。
  • 匹配逻辑不符需求:原代码只判断键完全等于name,但需求是name作为子串存在于键中(即name是键的一部分)。
  • 初始化逻辑混乱:res初始化为None,后续却赋值为字典类型,逻辑不统一。

修正后的函数实现

def extractKey(dictionary, name):
    res = {}
    for key in dictionary:
        # 检查name是否是当前键的子串
        if name in key:
            res[key] = dictionary[key]
    return res

代码说明

  • 初始化res为空字典,避免循环中被错误覆盖。
  • 遍历字典的每个键,通过name in key判断name是否是键的一部分,完全符合需求。
  • 所有匹配的键值对都会被加入res,循环结束后直接返回:如果没有匹配项,返回空字典;否则返回包含所有匹配条目的字典。

测试示例

test_dict = {"apple": 1, "pineapple": 2, "banana": 3}
print(extractKey(test_dict, "apple"))  # 输出: {'apple': 1, 'pineapple': 2}
print(extractKey(test_dict, "orange"))  # 输出: {}
print(extractKey(test_dict, "ana"))     # 输出: {'banana': 3}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:30:46