Python字典的键。 "In"复杂度
- 论坛
- Python字典的键。 "In"复杂度
14 浏览
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)。
对于我来说,在我的代码中使用后者版本很容易,但是我只是好奇并想问一下。