转载自:http://www.oschina.net/question/1579_45822

1:使用内建函数
input() int() isinstance() issubclass() iter() open() ord() pow() print() property() 2 使用join()连接字符串
>>> chunk = ['a', 'b', 'c', 'd']
>>> a = '_'.join(chunk)
>>> a
'a_b_c_d' 3 使用python多重赋值,交换变量
>>> x = 0
>>> y = 1
>>> z = 2
>>> x, y, z = z, y, x
>>> x
2
>>> y
1
>>> z
0 4 尽量使用局部变量(python检索局部变量比全局变量快,意味着要减少使用‘global’) 5 使用延迟加载加速
将‘import’声明移入函数中,仅在需要的时候导入。如果某些模块不需要马上使用,稍后导入他们。 6 为无限循环使用‘while 1’
如果需要一个无限循环,例如监听套接字实例。while True 可以实现,但 while 1:是单步运算,可以提高性能: 7 使用 list comprehension
更具可读性(函数式编程) >>> evens = [i for i in range(10) if i % 2 == 0]
>>> evens
[0, 2, 4, 6, 8] 8 使用xrange()处理长序列:
节省内存,因为xrange()在序列每次调用只产生一个整数元素。而range(),它将直接给你一个完整的元素列表,用于循环时会有不必要的开销。 9 使用python generator
节省内存和提高性能,例如一个视频流,你可以一个一个字节的发送,而不是整个流
>>> chunk = (1000 * i for i in xrange(1000))
>>> chunk
<generator object <genexpr> at 0x7f12f0073910>
>>> chunk.next()
0
>>> chunk.next()
1000
>>> chunk.next()
2000
>>> chunk.next()
3000 10 了解itertools模块
该模块对迭代和组合是非常有效的。例如列出列表[1, 2, 3]的所有排列组合,仅须3行代码
>>> import itertools
>>> iter = itertools.permutations([1, 2, 3])
>>> list(iter)
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 11 bisect模块保持序列排序
这是一个免费的二分查找实现和快速插入有序序列的工具。
>>> import bisect
>>> list = [1, 4, 7, 9]
>>> bisect.insort(list, 5)
>>> list
[1, 4, 5, 7, 9]
你已将一个元素插入表中,而你不必再次调用sort()来保持容器的排序,因为这在长序列中会非常昂贵。 12 Python中的列表实现并不是以人们通常谈论的计算机科学中的普通单链表实现的。Python中
的列表是一个数组。也就是说,你可以以常量时间O(1) 检索列表的某个元素,而不需要从>头开始搜索。这有什么意义呢? Python开发人员使用列表对象insert()时, 需三思. 例>如:>>> list.insert(0,item) 这个操作很慢
      在列表的前面插入一个元素效率不高, 因为列表中的所有后续下标不得不改变. 然而
,您可以使用list.append()在列表的尾端有效添加元素. 挑先deque,如果你想快速的在两
插入或时。它是快速的,因为在Python中的deque用双链表实现。不再多说。 :) 13 使用dict和set检测成员,因为二者用hash实现。
>>> mylist = ['a', 'b', 'c'] #slower , checkmembership with list
>>> 'c' in mylist
True
>>> myset = set(['a', 'b', 'c']) # faster ,checkmembership with set
>>> 'c' in myset
True
>>> 14 http://caoyaojun1988-163-com.iteye.com/blog/1752627 Schwartzian
python lambda表达式:http://developer.51cto.com/art/201301/388431.htm

python 性能鸡汤的更多相关文章

  1. Python性能鸡汤

    http://pythoner.org/wiki/257/ 毫无疑问:Python程序没有编译型语言高效快速. 甚至Python拥护者们会告诉你Python不适合这些领域. 然而,YouTube已用P ...

  2. Python性能鸡汤(转)

    英文原文:http://blog.monitis.com/index.php/2012/02/13/python-performance-tips-part-1/ 英文原文:http://blog.m ...

  3. Python性能鸡汤(转)

    英文原文:http://blog.monitis.com/index.php/2012/02/13/python-performance-tips-part-1/ 英文原文:http://blog.m ...

  4. Python性能(转)

    第一部分 阅读 Zen of Python,在Python解析器中输入 import this. 一个犀利的Python新手可能会注意到"解析"一词, 认为Python不过是另一门 ...

  5. Python性能提升小技巧

    第一部分 1-使用内建函数: 你可以用Python写出高效的代码,但很难击败内建函数. 经查证. 他们非常快速 2-使用 join() 连接字符串. 你可以使用 + 来连接字符串. 但由于string ...

  6. Python 性能剖分工具

    Python 性能剖分工具 眼看着项目即将完成,却被测试人员告知没有通过性能测试,这种情况在开发中屡见不鲜.接下来的工作就是加班加点地找出性能瓶颈,然后进行优化,再进行性能测试,如此这般周而复始直到通 ...

  7. Python性能分析

    Python性能分析 https://www.cnblogs.com/lrysjtu/p/5651816.html https://www.cnblogs.com/cbscan/articles/33 ...

  8. python性能分析(一)——使用timeit给你的程序打个表吧

    前言 我们可以通过查看程序核心算法的代码,得知核心算法的渐进上界或者下界,从而大概估计出程序在运行时的效率,但是这并不够直观,也不一定十分靠谱(在整体程序中仍有一些不可忽略的运行细节在估计时被忽略了) ...

  9. python性能监控初试

    标 题: python性能监控初试作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990765.html 欢迎转帖 请保持文本完整并注明出处 之前性能统计 ...

随机推荐

  1. RichTextBox 右键显示 ContextMenuTrip 分类: C# 2014-10-16 10:43 337人阅读 评论(0) 收藏

    说明: (1)命名: RichTextBox  -> rtxt1 ContextMenuTrip -> cms1 (2)截图: (3)完整代码: <span style=" ...

  2. [置顶] js正则表达式的使用

    js中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了 1定义正则表达式 2关于验证的三个这则表达式方法 3正则表达式式的转义字符 1定义正则表达式 在js中定义正则表达式很简单,有两种方式, ...

  3. IIS7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。=

    本文转载:http://www.cnblogs.com/ctcx/archive/2012/07/19/2599741.html 在 Microsoft Visual Studio 2010 打开看了 ...

  4. 刚才建立一个 swift 中文讨论社区,欢迎大家參与讨论

    http://www.chinaswift.me 主要目的是收集 swift学习资源

  5. Hibernate的游离态与持久态转换

    在Hibernate中,一个PO可能经过长时间的操作,session已过时关闭,此时PO已经是一个游离态的对象,这时要转换为持久战态,有下面几种方法: 1.session.saveOrUpdate(o ...

  6. JAVA操作Excel时文字自适应单元格的宽度设置方法

    使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...

  7. WebRTC clientICE 延迟问题

    本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. 近期在优化WebRTCclient呼叫延迟问题.原因是ICE协议栈在收集地址到探測协商过程花费非常长时间.这 ...

  8. leetcode-1 Two Sum 找到数组中两数字和为指定和

     问题描写叙述:在一个数组(无序)中高速找出两个数字,使得两个数字之和等于一个给定的值.如果数组中肯定存在至少一组满足要求. <剑指Offer>P214(有序数组) <编程之美& ...

  9. Jqure实现下拉多选

    Web ")                 {                     try                     {                          ...

  10. Nuget 相关

    1:服务器搭建 1.1:创建空的Web Application 1.2:引用NuGet.Server 包:NuGet.Server 安装完成后的界面 web.config 已经被重写了,里面存在一些配 ...