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

defaultdict使用lambda异常排查:无法正确返回d["c"]默认值

问题排查与修复

你的问题出在defaultdict的默认工厂函数定义上:

  • defaultdict要求传入的默认工厂函数是无参数的,当访问不存在的键时,它会直接调用这个函数生成默认值,不会传递任何参数
  • 你写的lambda c: "Not Present"定义了一个需要接收1个参数的匿名函数,当d["c"]被访问时,defaultdict尝试调用这个lambda但没有传参,会触发TypeError

修复后的代码

from collections import defaultdict

# 去掉lambda的参数,改为无参形式
d = defaultdict(lambda: "Not Present")
d["a"] = 1
d["b"] = 2

print(d["a"])
print(d["b"])
print(d["c"])

运行结果

1
2
Not Present

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 06:24:52