所谓Pythonic 指的是非常具有python风格往往也是比较高效、前人性能优化过的书写方式。除了积累和多读源码以外并没有很好的方式锻炼这部分的水平。
常见Tips
以下涉及到一些最常用的代码片段Pythonic的方式记录。
()中表示加速比。
-
join 比 +=好(33.1)
-
解析式迭代器比append好(2.3)
-
while 1 > while true (1.6)
-
** 好于pow (6.8)
-
set > list
-
key> list
-
使用内置数据类型
-
使用局部变量
-
不访问属性
让关键代码依赖于外部包
虽然Python让许多编程任务变得容易,但它可能并不总能为紧急的任务提供最佳性能。你可以为紧急的任务使用C、C++或机器语言编写的外部包,这样可以提高应用程序的性能。这些包都是不能跨平台的,这意味着你需要根据你正在使用的平台,寻找合适的包。简而言之,这个方案放弃了一些应用程序的可移植性,以换取只有在特定主机上直接编程才能获得的程序性能。这里有一些你应该考虑加入到你的“性能兵工厂”的包:
这些包以不同的方式提高性能。例如,Pyrex能够扩展Python所能做的事情,例如使用C的数据类型来让内存任务更加有效或直接。PyInIne让你在Python应用程序中直接使用C代码。程序中的内联代码单独编译,但它在利用C语言所能提供的效率的同时,也让所有的代码都在同一个地方。
numba看一下:[Python技巧]如何加快循环操作和Numpy数组运算速度 - IT程序猿
numpy 矩阵优化
https://www.liangye.site/2018/05/10/efficient-numpy/
未完待续
Reference
-
《改善Python程序的91个建议》
网友评论