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自动重试HTTP连接装饰器
Apr 28 Python
Python入门_浅谈for循环、while循环
May 16 Python
python 反向输出字符串的方法
Jul 16 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Python 3.8新特征之asyncio REPL
May 28 Python
Python FtpLib模块应用操作详解
Dec 12 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
Python 打印自己设计的字体的实例讲解
Jan 04 Python
Pytest之测试命名规则的使用
Apr 16 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中加session验证)
2012/08/22 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
解析JavaScript中的标签语句
2013/06/19 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
用python代码做configure文件
2014/07/20 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
python实现括号匹配的思路详解
2018/08/23 Python
在python中安装basemap的教程
2018/09/20 Python
Python爬取成语接龙类网站
2018/10/19 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
小学生读书感言
2014/02/12 职场文书
绩效考核实施方案
2014/03/18 职场文书
活动总结报告怎么写
2014/07/03 职场文书
小学班级特色活动方案
2014/08/31 职场文书
免职证明样本
2014/10/23 职场文书
道歉的话怎么说
2015/05/12 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
SQL Server中使用表变量和临时表
2022/05/20 SQL Server