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 21 Python
python实现根据ip地址反向查找主机名称的方法
Apr 29 Python
Python多进程并发(multiprocessing)用法实例详解
Jun 02 Python
python学习之第三方包安装方法(两种方法)
Jul 30 Python
简单总结Python中序列与字典的相同和不同之处
Jan 19 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
python实现最大子序和(分治+动态规划)
Jul 05 Python
python各层级目录下import方法代码实例
Jan 20 Python
使用Python和百度语音识别生成视频字幕的实现
Apr 09 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 Python
PyQt5爬取12306车票信息程序的实现
May 14 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
长波有什么东西
2021/03/01 无线电
PHP入门速成教程
2007/03/19 PHP
PHP异步调用socket实现代码
2012/01/12 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
Prototype使用指南之base.js
2007/01/10 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
python实现挑选出来100以内的质数
2015/03/24 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
python学生管理系统开发
2019/01/30 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Python中的整除和取模实例
2020/06/03 Python
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
项目副经理岗位职责
2013/12/30 职场文书
护理中职生求职信范文
2014/02/24 职场文书
安全责任书范本
2014/04/15 职场文书
心理健康活动总结
2014/04/30 职场文书
政府信息公开实施方案
2014/05/09 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL