1、合理使用copy与deepcopy
对于dict和list等数据结构的对象,直接赋值使用的是引用的方式。而有些情况下需要复制整个对象,这时可以使用copy包里的copy和deepcopy
2、优化循环
循环之外能做的事不要放在循环内,比如下面的优化可以快一倍:
3、优化包含多个判断表达式的顺序
对于and,应该把满足条件少的放在前面,对于or,把满足条件多的放在前面。
4、使用if is
使用 if is True
比 if == True
将近快一倍。
5使用级联比较x < y < z
eg:
使用if x<y<z 比使用 if x<y and y<z效率要好
6、不借助中间变量交换两个变量的值
推荐使用a,b = b,a
7、使用join合并迭代器中的字符串
比较限制的是非迭代器中的不好处理
8、合理使用生成器(generator)和yield
关于生成器可以参考如下链接
https://www.liaoxuefeng.com/wiki/897692888725344/923029685138624
简单来说,生成器就是计算公式,不显示提供数据,而是提供计算公式
yield简单来说就是提供了计算公式的中间结果,而使用next函数可以不断计算下一个函数值
9、关闭GC
垃圾回收必然会影响执行效率,某些场景下关闭垃圾回收能提高运行效率
10、使用pypy
其实使用cpython也能提高效率,但是当前来看pypy是未来,而且效率更高,是值得推荐使用的