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 12 Python
python append、extend与insert的区别
Oct 13 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
Python中字符串与编码示例代码
May 20 Python
详解用python生成随机数的几种方法
Aug 04 Python
python 生成任意形状的凸包图代码
Apr 16 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
jupyter notebook的安装与使用详解
May 18 Python
django有哪些好处和优点
Sep 01 Python
python 三种方法实现对Excel表格的读写
Nov 19 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 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
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
2016/06/09 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
python 命名规范知识点汇总
2020/02/14 Python
python logging.info在终端没输出的解决
2020/05/12 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
美国NBA官方商店:NBA Store
2019/04/12 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
2014年村委会工作总结
2014/11/24 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
Python函数对象与闭包函数
2022/04/13 Python