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

如何返回仅含key+value为回文的字典?Python报KeyError怎么解决

报错原因

  • 核心问题是判定拼接结果不是回文、删除对应键后没有终止内层判断循环,内层循环会继续执行下一个索引的比对逻辑,再次尝试删除已经被移除的键,最终触发KeyError。
  • 额外可优化点:无需手写双指针逻辑判断回文,Python可直接用字符串 == 字符串[::-1]的写法快速完成回文判定,代码更简洁也避免逻辑漏洞。

修复后可运行代码

def isPalindrome(dict1):
    # 遍历字典拷贝的键值对,规避遍历过程中修改原字典带来的异常
    for key, value in dict1.copy().items():
        result = key + value
        # 非回文直接删除对应键
        if result != result[::-1]:
            del dict1[key]
    return dict1

dictionary = {
    "kaj":"ak",
    "ado":"lescent",
    "gu":"ug"
}
print(isPalindrome(dictionary))

运行输出

{'kaj': 'ak', 'gu': 'ug'}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:45:00