当前位置: 首页 > 科技观察

90%的人都说Python程序慢,5个绝招让你的代码跑得像赛车一样

时间:2023-03-11 21:15:28 科技观察

很多人抱怨自己写的Python代码运行慢,尤其是处理的数据集比较大的时候。只需更改几行代码就可以将代码的性能提高数倍。如果您不相信我,让我们看看以下5个提示。1、两个for循环的性能差距有多大?一般我们使用内置的timeit模块进行量化比较:将传统的for改成推导列表,性能提升了很多,提升了200%。2.使用Set而不是list让我们看一个常见的场景。搜索性能时,使用set是list的10倍。如果你不相信我,请看下面的例子。在查找成员时,Python的set比list快很多。区别在于ifiinmylist和ifiinmyset。list的复杂度是O(n),set的复杂度是O(1),所以搜索set一定更快!3、交换if和for的位置很多时候我们在for循环内部做条件判断,循环一个变量,然后用if/else判断。对于这样的情况,可以优化一下,在for循环外提if/else,也可以提高性能。4.巧妙地使用try/except语句经常在for循环中使用来计算i然后将其添加到列表中。如果能巧妙地使用try/except,就可以摆脱if/else检查的开销,从而提高性能。5.神器采集模块采集库提供了很多模块,非常好用。有些模块是和容器相关的,实际项目中我们会用到大部分。比如deque双向队列和defaultdict默认字典。1).Two-wayqueuedequedeque是双向队列。如果你的业务逻辑需要从队列的头部或尾部进行大量的删除和添加,那么使用deque的性能会得到很大的提升!如果只是一个小队列,需要对元素进行随机访问操作,那么list会更快。2).默认字典defaultdict对于字典的使用,我们要学会使用defaultdict来代替。首先,拥有默认值是非常安全的。如果访问一个不存在的key,不会报错;第二,Python的性能会得到很大的提升。仅通过改变字典数据结构,性能就大幅提升了3倍。Python的技巧还是很多的,尤其是性能优化。Py3的性能比Py2高很多。如果我们在写代码的时候能够多思考,代码不仅可以工作,还可以提高性能。我相信如果你经常这样想,你就会逐渐成为高手!当然,很多新手往往不按规律行事,可以看看这条捷径。