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 15 Python
Python实现的从右到左字符串替换方法示例
Jul 06 Python
python中sys.argv函数精简概括
Jul 08 Python
Python面向对象之反射/自省机制实例分析
Aug 24 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
Feb 26 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
Python偏函数实现原理及应用
Nov 20 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
Python机器学习三大件之一numpy
May 10 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
javascript回到顶部特效
2016/07/30 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
python实现数据写入excel表格
2018/03/25 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
用python做游戏的细节详解
2019/06/25 Python
Python 使用多属性来进行排序
2019/09/01 Python
用python计算文件的MD5值
2020/12/23 Python
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
中班幼儿评语大全
2014/04/30 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
地震捐款倡议书
2014/08/29 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript