Python编程规范及性能优化三 分类: python 2013-01-18 18:04 207人阅读 评论(0) 收藏
2013-01-18 18:04
591 查看
使用xrange()处理长序列
这样可为你节省大量的系统内存,因为xrange()在序列中每次调用只产生一个整数元素。而相反range(),它將直接给你一个完整的元素列表,用于循环时会有不必要的开销。
使用 Python generator
这也可以节省内存和提高性能。例如一个视频流,你可以一个一个字节块的发送,而不是整个流。例如:
>>> chunk = ( 1000 * i for i in xrange(1000))
>>> chunk
>>> chunk.next()
0
>>> chunk.next()
1000
>>> chunk.next()
2000
了解itertools模块
该模块对迭代和组合是非常有效的。让我们生成一个列表[1,2,3]的所有排列组合,仅需三行Python代码:
>>> import itertools
>>> iter = itertools.permutations([1,2,3]) #参数也可以是元组、字符串、字典;如果是字典,则对key值进行排列组合
>>> list(iter)
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
学习bisect模块保持列表排序
这是一个免费的二分查找实现和快速插入有序序列的工具。也就是说,你可以使用:
>>> import bisect
>>> bisect.insort(list, element)
你已將一个元素插入列表中, 而你不需要再次调用 sort() 来保持容器的排序, 因为这在长序列中这会非常昂贵.
这样可为你节省大量的系统内存,因为xrange()在序列中每次调用只产生一个整数元素。而相反range(),它將直接给你一个完整的元素列表,用于循环时会有不必要的开销。
使用 Python generator
这也可以节省内存和提高性能。例如一个视频流,你可以一个一个字节块的发送,而不是整个流。例如:
>>> chunk = ( 1000 * i for i in xrange(1000))
>>> chunk
>>> chunk.next()
0
>>> chunk.next()
1000
>>> chunk.next()
2000
了解itertools模块
该模块对迭代和组合是非常有效的。让我们生成一个列表[1,2,3]的所有排列组合,仅需三行Python代码:
>>> import itertools
>>> iter = itertools.permutations([1,2,3]) #参数也可以是元组、字符串、字典;如果是字典,则对key值进行排列组合
>>> list(iter)
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
学习bisect模块保持列表排序
这是一个免费的二分查找实现和快速插入有序序列的工具。也就是说,你可以使用:
>>> import bisect
>>> bisect.insort(list, element)
你已將一个元素插入列表中, 而你不需要再次调用 sort() 来保持容器的排序, 因为这在长序列中这会非常昂贵.
相关文章推荐
- python性能优化摘录(二) 分类: python 2013-01-18 11:27 291人阅读 评论(0) 收藏
- python性能优化摘录 分类: python 2013-01-17 18:01 1192人阅读 评论(0) 收藏
- 优化程序结构 分类: divide into python python 小练习 2013-12-30 20:53 229人阅读 评论(0) 收藏
- 结尾非零数的奇偶性 分类: python 小练习 2013-12-02 18:04 371人阅读 评论(0) 收藏
- 使用文件进行优化 分类: python 小练习 divide into python python基础学习 2014-01-01 14:13 228人阅读 评论(0) 收藏
- 以lambda形式优化结构 分类: python 小练习 divide into python python基础学习 2013-12-30 21:07 279人阅读 评论(0) 收藏
- 集合 (set) 与列表 (list) 分类: python 2013-01-18 15:22 292人阅读 评论(0) 收藏
- 计数时使用Counter计数对象 分类: python 2013-01-18 16:11 163人阅读 评论(0) 收藏
- 架构师速成7.5-性能优化为什么写的这么晚? 分类: 架构师速成 2015-07-19 20:03 256人阅读 评论(0) 收藏
- 其他优化技巧 分类: python 2013-01-22 11:05 178人阅读 评论(0) 收藏
- SQL对程序性能的影响 分类: 数据库 2009-11-14 04:06 327人阅读 评论(0) 收藏
- #小练习 输出两个数的最大公约数 分类: python 小练习 2013-11-08 11:16 385人阅读 评论(0) 收藏
- 输出n的因子 分类: python 小练习 2013-12-13 17:20 229人阅读 评论(0) 收藏
- 解析XML文件总结 分类: python基础学习 python 2013-06-17 12:04 232人阅读 评论(0) 收藏
- pyscripter设置黑色背景的方法 分类: python下载 software 2015-01-29 11:39 331人阅读 评论(0) 收藏
- 基于live555的rtsp 客户端模块优化 标签: live555rtsp客户端 2014-11-14 09:24 980人阅读 评论(0) 收藏 举报 分类: 流媒体(16) 版权声明:本文
- 输出包含共同元素的变量值 分类: python 小练习 python基础学习 2014-03-11 13:55 188人阅读 评论(0) 收藏
- python中map()函数的使用 分类: python 2012-12-20 16:18 121人阅读 评论(0) 收藏
- python常用函数总结 分类: python基础学习 2014-02-07 14:12 260人阅读 评论(0) 收藏
- 转换时间格式 及 列表综合 分类: python 2012-12-26 17:54 182人阅读 评论(0) 收藏