如何在键为元组的字典中使用带默认值的get()方法
报错原因
Python 内置的 dict.get() 方法仅接收位置参数,不支持通过关键字参数传入默认值,你代码中写的 default = 0 不符合该方法的语法要求,因此触发了类型错误。
另外额外提醒:不要用 dict 作为变量名,这会覆盖 Python 内置的字典类型,后续如果需要调用内置字典的相关能力会出现不可预期的错误。
正确实现方案
直接把默认值作为第二个位置参数传入 get() 方法即可实现你要的效果:
# 避免命名冲突,把变量名改为my_dict my_dict = {('a', 'b'): 10} # 键存在时返回对应值 print(my_dict.get(('a', 'b'), 0)) # 键不存在时返回默认值0 print(my_dict.get(('c', 'd'), 0))
运行输出为:
10 0
补充说明
- 该写法兼容所有 Python 3 版本,是实现该需求的最优方案
- 如你使用的是 Python 3.10 及以上版本,也可以通过结构匹配的写法实现同等效果,但复杂度远高于直接用
get()方法的位置参数写法
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

