我有以下字典:
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
