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中每次处理一个字符的5种方法
May 21 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
详解 Python 读写XML文件的实例
Aug 02 Python
浅谈Python实现贪心算法与活动安排问题
Dec 19 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
详解用Python练习画个美队盾牌
Mar 23 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
超实用的 30 段 Python 案例
Oct 10 Python
Tensorflow 实现释放内存
Feb 03 Python
python实现三壶谜题的示例详解
Nov 02 Python
python tkinter实现定时关机
Apr 21 Python
python神经网络学习 使用Keras进行回归运算
May 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
PHP array操作10个小技巧分享
2011/06/23 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
Python类中self参数用法详解
2020/02/13 Python
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
数组越界问题
2015/10/21 面试题
大学生毕业求职简历的自我评价
2013/10/24 职场文书
办公室年终个人自我评价
2013/10/28 职场文书
优秀求职信范文分享
2014/01/26 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
python异常中else的实例用法
2021/06/15 Python
Java 数组内置函数toArray详解
2021/06/28 Java/Android