python使用列表的最佳方案


Posted in Python onAugust 12, 2020

经常写Python程序的人,列表应该是使用率最高数据结构的了。我们使用列表的过程中,生成列表方式有很多种,哪一种方式性能是最好的呢?可能很多人都没有关心过这个问题。假设要生成一个有1000个元素的列表。采用下面哪一种方式生成最好呢?

1、连接方式

def gen_list1():  
  l = []  
  for i in range(1000):    
    l = l + [i]

2、append方法

def gen_list2():  
  l = []  
  for i in range(1000):    
    l.append(i)

3、列表表达式

def gen_list3():  
  l = [i for i in range(1000)]

4、range函数

def gen_list4():  
  l = list(range(1000))

以上四种方式,都可以实现一个有1000个元素的列表。为了知道哪一种方式耗时最少,我们需要进行测试才可以知晓。测试耗时我们使用Timer方法,下面编写具体测试代码。

from timeit import Timer

t1 = Timer("gen_list1()", "from __main__ import gen_list1")
print("连接方式:", t1.timeit(number=1000), "ms")

t2 = Timer("gen_list2()", "from __main__ import gen_list2")
print("append方法:", t2.timeit(number=1000), "ms")

t3 = Timer("gen_list3()", "from __main__ import gen_list3")
print("列表表达式:", t3.timeit(number=1000), "ms")

t4 = Timer("gen_list4()", "from __main__ import gen_list4")
print("range函数:", t4.timeit(number=1000), "ms")

测试程序编写完成后,可以运行看看结果。

连接方式:  1.2728083460242487 ms
append方法: 0.10177052899962291 ms
列表表达式: 0.03995161800412461 ms
range函数: 0.01611424400471151 ms

通过测试我们可以看出来,使用range函数生成1000个元素列表,耗时是最少的。要想写出高性能Python程序,掌握分析程序性能的方法和熟悉每一种数据结构都是非常重要的技能。

以上就是python使用列表的最佳方案的详细内容,更多关于python列表的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中为feedparser设置超时时间避免堵塞
Sep 28 Python
详解python调度框架APScheduler使用
Mar 28 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
python判断数字是否是超级素数幂
Sep 27 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
Django基础三之视图函数的使用方法
Jul 18 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
Python如何读写二进制数组数据
Aug 01 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
python实现图像随机裁剪的示例代码
Dec 10 Python
Python实现播放和录制声音的功能
Aug 12 #Python
Python实现文件压缩和解压的示例代码
Aug 12 #Python
Python爬取数据并实现可视化代码解析
Aug 12 #Python
Python下载网易云歌单歌曲的示例代码
Aug 12 #Python
Python爬取12306车次信息代码详解
Aug 12 #Python
Python读取xlsx数据生成图标代码实例
Aug 12 #Python
Idea安装python显示无SDK问题解决方案
Aug 12 #Python
You might like
FCKeditor的安装(PHP)
2007/01/13 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
javascript闭包的理解和实例
2010/08/12 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
python机器学习理论与实战(二)决策树
2018/01/19 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
python语言基本语句用法总结
2019/06/11 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
幼儿园教师请假制度
2014/01/16 职场文书
团干部培训方案
2014/06/03 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
工作经验交流材料
2014/12/30 职场文书
小学课改工作总结
2015/08/13 职场文书
解析Redis Cluster原理
2021/06/21 Redis
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript