Python字典的键。 "In"复杂度

14 浏览
0 Comments

Python字典的键。 "In"复杂度

为了满足我的好奇心,我有一个快速问题。我正在编写一些使用SQlite数据库作为后端的大型Python程序,并且将来将处理大量的记录,所以我需要尽可能地优化。对于一些函数,我正在通过字典中的键进行搜索。我一直在使用“in”关键字进行原型设计,并计划在稍后优化这些搜索,因为我知道“in”关键字通常是O(n)的(因为它只是将Python迭代整个列表并比较每个元素)。但是,由于Python字典基本上只是一个哈希映射,Python解释器是否足够聪明,能够将:

if(key in dict.keys()):
    ...code...

解释为:

if(dict[key] != None):
    ...code...

这基本上是相同的操作,但是前者的时间复杂度是O(n),而后者的时间复杂度是O(1)。

对于我来说,在我的代码中使用后者版本很容易,但是我只是好奇并想问一下。

0