python中in在list和dict中查找效率的对比分析

yipeiwu_com7年前Python基础

首先给一个简单的例子,测测list和dict查找的时间:

import time
query_lst = [-60000,-6000,-600,-60,-6,0,6,60,600,6000,60000]
lst = []
dic = {}
for i in range(100000000):
 lst.append(i)
 dic[i] = 1 
start = time.time()
for v in query_lst:
 if v in lst:
  continue
end1 = time.time()
for v in query_lst:
 if v in dic:
  continue
end2 = time.time()
print "list search time : %f"%(end1-start)
print "dict search time : %f"%(end2-end1)

运行结果:

list search time : 11.836798 
dict search time : 0.000007

通过上例我们可以看到list的查找效率远远低于dict的效率,原因如下:

python中list对象的存储结构采用的是线性表,因此其查询复杂度为O(n),而dict对象的存储结构采用的是散列表(hash表),其在最优情况下查询复杂度为O(1)。

以上这篇python中in在list和dict中查找效率的对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python random从集合中随机选择元素的方法

如下所示: list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5) #从list中随机获取5个元...

python super的使用方法及实例详解

功能 super功能:super函数是子类用于调用父类(超类)的一个方法。 用法 1.在子类 __init__() 方法中正确的初始化父类,保证相同的基类只初始化一次。 2.覆盖特...

python实现QQ空间自动点赞功能

本文实例为大家分享了python实现QQ空间自动点赞的具体代码,供大家参考,具体内容如下 项目github地址 使用python实现qq空间自动点赞功能。 需自行安装库并配置环境。 我想...

Python安装Imaging报错:The _imaging C module is not installed问题解决方法

今天写Python程序上传图片需要用到PIL库,于是到http://www.pythonware.com/products/pil/#pil117下载了一个1.1.7版本的,我用的是Ce...

Python学习_几种存取xls/xlsx文件的方法总结

Python学习_几种存取xls/xlsx文件的方法总结

想在深度学习程序运行时动态存下来一些参数。 存成Excel文件查看方便,就查了几种方法,做个测试。因为我平常也不怎么用 Excel,简单的存取数据就够了。 xlwt/xlrd库 存Exc...