Skip to main content
 首页 » 编程设计

python之字典获取方法行为

2025年05月04日11youxin

我有以下字典:

dic = {"a": "first", "b": "second"} 

没关系,当我执行以下操作时:

print dic.get("a") 
print dic.get("a", "asd") 
print dic.get("a", dic.get("c")) 

但是当我像这样使用这个方法时:

print dic.get("a", dic.get("c").split(" ",1)[0]) 

我收到以下错误:

Traceback (most recent call last): 
  File "<console>", line 1, in <module> 
AttributeError: 'NoneType' object has no attribute 'split' 

我不明白最后一个案例。计算的第二个参数(dic.get("c") 应该是 None - 没关系),但是字典中有一个键“a”,第一个参数不应该触发第二个参数的计算。

我该如何解决这个问题?为什么会这样?

TIA!

请您参考如下方法:

无论是否使用第二个参数都会被计算。

要解决此问题,您可以捕获未找到项目时引发的异常,而不是使用 get。

try: 
    result = dic['a'] 
except KeyError: 
    result = dic['c'].split(' ', 1)[0] 
print result