python 进阶学习:列表解析效率和timeit模块
2016-05-21 22:28
645 查看
测试程序:
运行结果:
xrange: 0.902672575122
range: 1.10212825829
while: 1.27347430489
list comprehension: 0.385958182372
可以看到完成相同操作,列表解析比其他都快,而由于python迭代器的特性,用while进行循环是效率最低的
import timeit lst = [] def test_xrange(n): global lst lst = [] for i in xrange(n): lst.append(1) assert len(lst) == n def test_range(n): global lst lst = [] for i in range(n): lst.append(1) assert len(lst) == n def test_while(n): global lst lst = [] i = 0 while i < n: lst.append(1) i += 1 assert len(lst) == n def test_list_comprehension(n): global lst lst = [] lst = [1 for i in xrange(n)] assert len(lst) == n timer1 = timeit.Timer('test_xrange(4000000)','from __main__ import test_xrange') timer2 = timeit.Timer('test_range(4000000)','from __main__ import test_range') timer3 = timeit.Timer('test_while(4000000)','from __main__ import test_while') timer4 = timeit.Timer('test_list_comprehension(4000000)','from __main__ import test_list_comprehension') print 'xrange:', timer1.timeit(number=2) print 'range:', timer2.timeit(number=2) print 'while:', timer3.timeit(number=2) print 'list comprehension:', timer4.timeit(number=2)
运行结果:
xrange: 0.902672575122
range: 1.10212825829
while: 1.27347430489
list comprehension: 0.385958182372
可以看到完成相同操作,列表解析比其他都快,而由于python迭代器的特性,用while进行循环是效率最低的
相关文章推荐
- python 有关引用的一些问题
- Python Mysql Connect By Two ways
- Python Hidden Features
- python后端开发视频教程学习笔记
- 关于python的self
- Python Excel
- LeetCode Maximum Product Subarray
- Python核心编程 第十章练习
- python 1000创建文件夹和1000 移动文件
- Xpath简单匹配标签内容
- python通过pyhdfs连接hdfs的安装配置
- 【python gensim使用】word2vec词向量处理中文语料
- python命令行上下 退格,左右键不能用
- zeppelin下写python程序
- 【python gensim使用】word2vec词向量处理英文语料
- 地铁译:Spark for python developers ---Spark的数据戏法
- 《Python 核心编程》 学习记录
- 使用Python的urllib2和pyquery 提取深圳市太平洋影城的影讯(二)——Python代码编写
- Python 将数字以科学记数法输出
- python练习六—简单的论坛