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中的map、reduce和filter浅析
Apr 26 Python
Python中用Decorator来简化元编程的教程
Apr 13 Python
Django中的Signal代码详解
Feb 05 Python
Python面向对象之继承和组合用法实例分析
Aug 27 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
pycharm的console输入实现换行的方法
Jan 16 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
Python API自动化框架总结
Nov 12 Python
利用python实现凯撒密码加解密功能
Mar 31 Python
Django用户身份验证完成示例代码
Apr 03 Python
Python requests HTTP验证登录实现流程
Nov 05 Python
Pygame Time时间控制的具体使用详解
Nov 17 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 ADODB使用方法集锦
2008/03/25 PHP
php动态生成JavaScript代码
2009/03/09 PHP
php 分页类 扩展代码
2009/06/11 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
PHP源码之explode使用说明
2011/08/05 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
Django中Forms的使用代码解析
2018/02/10 Python
python中 * 的用法详解
2019/07/10 Python
python实现中文文本分句的例子
2019/07/15 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
C#公司笔试题
2014/03/28 面试题
《匆匆》教学反思
2014/02/22 职场文书
元宵晚会主持词
2014/03/25 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
主题班会开场白
2015/06/01 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
Python机器学习之基础概述
2021/05/19 Python
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android