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 MySQLdb Linux下安装笔记
May 09 Python
Python使用filetype精确判断文件类型
Jul 02 Python
python版微信跳一跳游戏辅助
Jan 11 Python
基于Django用户认证系统详解
Feb 21 Python
Python实现中一次读取多个值的方法
Apr 22 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
python实现吃苹果小游戏
Mar 21 Python
基于python检查SSL证书到期情况代码实例
Apr 04 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python实现学生成绩测评系统
Jun 22 Python
python之openpyxl模块的安装和基本用法(excel管理)
Feb 03 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
PHP 图像尺寸调整代码
2010/05/26 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
PHP常用的三种设计模式
2017/02/17 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
python显示天气预报
2014/03/02 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
Python库安装速度过慢解决方案
2020/07/14 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
美国在线珠宝商店:SZUL
2017/02/11 全球购物
Android笔试题总结
2014/11/29 面试题
经贸日语专业个人求职信范文
2014/04/29 职场文书
幼儿教师求职信
2014/05/24 职场文书
反邪教标语
2014/06/23 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
预备党员自我评价范文
2015/03/04 职场文书
六年级作文之关于梦
2019/10/22 职场文书