19项Python性能优化让你代码就地起飞

本文介绍了19项Python性能优化技术,包括优化循环、使用join字符串、if is、级联比较、使用**、优化判断顺序、使用dict或set、合理使用copy与deepcopy等。通过这些技巧,可以显著提高Python代码的执行效率,减少资源消耗。
摘要由CSDN通过智能技术生成

最近发现python的优化其实感觉有点可有可无,为什么呢。之前我刷leetcode用python实现了一个整数反转的算法。

第一种方法是使用python自带的函数从int转str,然后str倒转转int。最快大约花了24ms。然后我想着能不能更快,然后从官方那边抄了一个C++的的算法,我以为能很快,然而最快也只能到24ms,而且需要多次提交才能达到这个效果。我推测应该是python编译留下的缓存,直接就运行了。

很明显对于python这种语言,真正的性能瓶颈是嵌套循环。然而嵌套循环在任何语言都是大头。如果真的要求真正的毫秒级的优化,应该选择C++这种强静态语言。python更多的是为快速开发而生。当然这并不能说明python的优化不重要,对python优化的掌握程度也能从侧面反映一个人对python的理解深度

1、优化循环

循环之外能做的事不要放在循环内

2、使用join合并迭代器中的字符串

join对于累加的方式,有大约5倍的提升

3、使用if is

使用if is True比if == True将近快一倍

4、使用级联比较x < y < z

x < y < z效率略高,而且可读性更好

5、使用**而不是pow

%timeit -n 10000 c = pow(2,20)
%timeit -n 10000 c = 2**20
10000 loops, best of 3: 284 ns per loop
10000 loops, best of 3: 16.9 ns per loop

**就是快10倍以上!

6、优化包含多个判断表达式的顺序

对于and,应该把满足条件少的放在前面,对于or,把满足条件多的放在前面

a = range(2000)  
%timeit -n 100 [i for i in a if 10 < i < 20 or 1000 < i < 2000]
%timeit -n 100 [i for i in a if 1000 < i < 2000 or 100 < i < 20]     
%timeit -n 100 [i for i in a if i % 2 == 0 and i > 1900]
%timeit -n 100 [i for i in a if i > 1900 and i % 2 == <
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值