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


Posted in Python onMay 04, 2018

首先给一个简单的例子,测测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 client使用http post 到server端的代码
Feb 10 Python
python实现的登录和操作开心网脚本分享
Jul 09 Python
python通过索引遍历列表的方法
May 04 Python
详解Python多线程
Nov 14 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
Python学习笔记之open()函数打开文件路径报错问题
Apr 28 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
numpy linalg模块的具体使用方法
May 26 Python
python写一个随机点名软件的实例
Nov 28 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
python安装sklearn模块的方法详解
Nov 28 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
Django如何配置mysql数据库
May 04 #Python
Python实现求一个集合所有子集的示例
May 04 #Python
python list是否包含另一个list所有元素的实例
May 04 #Python
Python判断两个list是否是父子集关系的实例
May 04 #Python
python判断一个集合是否为另一个集合的子集方法
May 04 #Python
python3 判断列表是一个空列表的方法
May 04 #Python
python数字图像处理实现直方图与均衡化
May 04 #Python
You might like
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
python机器学习之神经网络实现
2018/10/13 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
自我评价范文点评
2013/12/04 职场文书
销售实习自我鉴定
2013/12/07 职场文书
大学生村官典型材料
2014/01/12 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
2016年元旦主持词
2015/07/06 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
浅谈Python中对象是如何被调用的
2022/04/06 Python