为什么list的查询效率相比于dic字典低这么多呢?
通过查阅相关资料,我了解到字典采用了使用空间换取时间的方法,它不同于列表的循环遍历。
list是通过偏移量来读取特定索引的值,而字典是通过hash哈希实现的,hash函数能够使字典均匀的分布在底层实现的一个数组中,我们在查询的时候,直接根据键的hash值就能迅速判断出这个值是否是字典的一个键值,因此就大大提高了查询的效率。
结论
通过实际的比较可以清楚看出,使用字典进行查询的效率远远高于在list中的查询效率,从而我们也可以得出结论:
在字典键值查询时,使用in dic的效率要远远高于使用 in dic.keys()的效率。