在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
七个提升Python运行性能的小技巧有使用局部变量,减少函数调用次数采用映射替代条件查找,直接迭代序列元素,采用生成器表达式替代列表解析,先编译后调用,模块编程习惯。
提升Python运行性能的小技巧如下:
技巧一、使用局部变量
尽量使用局部变量代替全局变量:便于维护,提高性能并节省内存。
使用局部变量替换模块名字空间中的变量,例如?ls?=?os.linesep。一方面可以提高程序性能,局部变量查找速度更快;另一方面可用简短标识符替代冗长的模块变量,提高可读性。
技巧二、减少函数调用次数
对象类型判断时,采用isinstance()最优,采用对象类型身份(id())次之,采用对象值(type())比较最次。

不要在重复操作的内容作为参数放到循环条件中,避免重复运算。

如需使用模块X中的某个函数或对象Y,应直接使用from?X?import?Y,而不是import?X;?X.Y。这样在使用Y时,可以减少一次查询(解释器不必首先查找到X模块,然后在X模块的字典中查找Y)。
技巧三、采用映射替代条件查找
映射(比如dict等)的搜索速度远快于条件语句(如if等)。Python中也没有select-case语句。

技巧四、直接迭代序列元素
对序列(str、list、tuple等),直接迭代序列元素,比迭代元素的索引速度要更快。

技巧五、采用生成器表达式替代列表解析
列表解析(list?comprehension),会产生整个列表,对大量数据的迭代会产生负面效应。
而生成器表达式则不会,其不会真正创建列表,而是返回一个生成器,在需要时产生一个值(延迟计算),对内存更加友好。

技巧六、先编译后调用
使用eval()、exec()函数执行代码时,最好调用代码对象(提前通过compile()函数编译成字节码),而不是直接调用str,可以避免多次执行重复编译过程,提高程序性能。
正则表达式模式匹配也类似,也最好先将正则表达式模式编译成regex对象(通过re.complie()函数),然后再执行比较和匹配。
技巧七、模块编程习惯
模块中的最高级别Python语句(没有缩进的代码)会在模块导入(import)时执行(不论其是否真的必要执行)。因此,应尽量将模块所有的功能代码放到函数中,包括主程序相关的功能代码也可放到main()函数中,主程序本身调用main()函数。
可以在模块的main()函数中书写测试代码。在主程序中,检测name的值,如果为'main'(表示模块是被直接执行),则调用main()函数,进行测试;如果为模块名字(表示模块是被调用),则不进行测试。
免责条款:文章部分内容来源于互联网仅供参考阅读。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Python大蟒蛇平台是干什么用的?
Python大蟒蛇平台即 py平台,中国俗称大蟒蛇平台,一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。
16504
2019-05-21 12:04:24
初学Python用什么编辑器?Python开发编辑工具推荐
对于初学Python小伙伴来讲,一款好用的编辑器可以让效率大大提高。本篇文章为大家整理了,目前最受Python新手喜爱的八大编辑工具,感兴趣的小伙伴赶紧来看看吧!
9132
2019-08-29 14:48:21
Python2和 Python3都有哪些区别?
很多新同学在学习Python的过程当中,都会犹豫是学Python2还是Python3呢,这里给大家整理了一下关于Python2和Python3都有哪些区别,希望对迷茫的同学有所帮助
6595
2021-06-24 15:22:08
常用的初始HTML标签有哪些?书写规范是什么?
常用的初始HTML标签有哪些?书写规范是什么?初始 HTML 标签按类别可以区分为基础标签、格式标签、多媒体链接、列表、表单等,学习HTML需要先学习标签如何使用,没有技巧需要平时多练习多用才能达到熟能生巧的境界。
5369
2021-12-14 14:18:53
盒子模型尺寸设置及代码书写格式介绍
盒子模型尺寸设置及代码书写格式介绍,子模型就是把HTML页面的元素看作一个矩形盒子,矩形盒子是由内容(content)、内边距(padding)、边框(border)、外边距(margin)四部分组成,需要掌握盒子模型中的各个属性设置。
6794
2021-12-14 14:58:22
