【发布时间】:2016-07-13 21:13:24
【问题描述】:
我认为只有key 不在字典中时,.get(key, default=?) 函数才会查看 default 部分。
我要做的是,看看我的主字典中是否存在一个键,如果不存在,看看它是否存在于备份字典中,如果它既不在主字典中也不在备份字典中,则引发 KeyError。
所以,把上面的英文语句直接翻译成 Python,我写道:val = mainDict.get(key, backupDict[key])
这样,如果mainDict 没有key,它将在backupDict 中查找它,如果它也不存在则引发异常,因为我没有使用get 进行backupDict 查找。
发生的情况是,即使在检查mainDict 是否具有key 之前,Python 也会引发它不在backupDict 中的异常。是的,它不存在,因为它存在于mainDict 中!!
为什么会这样?
【问题讨论】:
-
get仅在未找到key时“查看”default,但无论get是否查看它都会评估默认值。
标签: python dictionary