使用关键字'在'中投掷KeyError与在字典中搜索关键字

时间:2014-11-05 19:24:53

标签: python-3.x

所以我必须搜索字典中是否存在密钥。来自这篇文章:here

我可以看到检查这个的预期方法是使用:

if key in dict

但我的问题是,这样做会更好:

def appendToMyDict(key, value):
    try:
        old_value = dict[key]
        newValue = old_value + value
        dict[key] = newValue
    except KeyError:
        dict[key] = value

我的目的是尽可能地优化“获取密钥”,因为我的密钥空间非常大,大约1000或以上。

我看到它的方式是字典是哈希图。因此,当我执行dict [key]时,python将对键进行散列,并且在O(1)时间内将获得其值。但是在使用“if key in dict”方法搜索密钥时,需要花费时间O(n)[因为它将搜索整个密钥空间]。

但如果我抛出错误,则需要O(1) + time to throw and catch the error.

的时间

我说错了吗?

1 个答案:

答案 0 :(得分:0)

key in dict是O(1),假设dict实际上是字典。