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下使用状态机的教程
Apr 11 Python
python操作sqlite的CRUD实例分析
May 08 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
Python处理CSV与List的转换方法
Apr 19 Python
详解Python爬取并下载《电影天堂》3千多部电影
Apr 26 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
python每天定时运行某程序代码
Aug 16 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
python数据类型可变不可变知识点总结
Mar 06 Python
浅谈Python中的模块
Jun 10 Python
为什么说python更适合树莓派编程
Jul 20 Python
python3.7调试的实例方法
Jul 21 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
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
深入PHP变量存储的详解
2013/06/13 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
python分析作业提交情况
2017/11/22 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
python浪漫表白源码
2019/04/05 Python
python的turtle库使用详解
2019/05/10 Python
django fernet fields字段加密实践详解
2019/08/12 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
浅谈Python协程
2020/06/17 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
化工机械应届生求职信
2013/11/04 职场文书
请假条标准格式规范
2014/04/10 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
vue+element ui实现锚点定位
2021/06/29 Vue.js
Python anaconda安装库命令详解
2021/10/16 Python