服务器之家

服务器之家 > 正文

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

时间:2021-03-31 22:53     来源/作者:菜鸟编程大本营

虽然有很多的第三方库可以帮助提升Python的运行速度,但是使用起来非常的麻烦。今天,小编想从程序编写的角度,来提升程序的运行速度。

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

1.巧妙的利用Python的数据类型

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

在Python程序中,对于list列表进行 for i in list1的操作时,其时间复杂度为O(n),而对于set进行for i in set1的操作,时间复杂度为O(1)。所以在程序的执行时间上,就会出现非常大的差距。

2.利用迭代器来替代列表

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

利用迭代器来代替列表,已经逐渐的成为了Python编程者使用的一种方法,利用迭代器的操作,不仅可以节省时间,更重要的是可以节省大量的内存空间,上图中,利用列表的操作需要占用大约8M的内存,但是迭代器只需要88个字节。

3.利用局部变量代替全局变量

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

上图程序中,全局的变量z放入到函数myFunc中,局部变量的执行时间要小于全局变量,因此程序执行的时间也大大的缩短。

4.避免“点”操作

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

上图中可以看到,calculateSqrtWithDot函数和calculateSqrt函数唯一的区别在于是否通过点操作来调用sqrt函数。每当我们点操作来调用函数时,就会触发特定的方法,例如,__getattribute__() 和__getattr__(),这样的方法会调用字典操作,从而带来时间的消耗,因此在程序调用第三方库时候,可以尽量使用from xx import xx的方法来进行调用。

5.避免不必要的类抽象

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

在类中,尽量不要去使用装饰器,描述符等操作来包装程序,这会给程序的运行带来负担,所以如果没有必要的话,就不要去这样包装程序。

6.避免没有意义的数据拷贝

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

上图的程序中,list6是一次没有意义的数据拷贝,不仅造成了程序运行时间的损耗,而且造成了内存资源的浪费。

7.更改值时避免使用临时变量

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

上述的程序中,temp的临时变量是不需要的,使用临时变量temp造成了程序运行时间的增加。

8.字符串变量的操作

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

当字符串str1和str2操作使用“+”号操作时,Python解释器将申请内存空间,将数据str1和str2分别复制到新的内存空间中去,所以当进行N次的字符串”+“操作时,将会生成N-1个中间的结果,并且每个中间结果都会复制到新的内存空间中。

当使用join函数时,join函数将会一次性计算所需的所有内存空间,然后申请内存空间,并将所有的字符串元素复制到申请的内存中去。

9.巧用if判断

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

在运用if进行判断时,常用的有两种方式。 1 if ...and...。 2 if... or ...。为了节省程序的运算时间,当进行if x and y的判断时,x需要是False可能性比较高的判断条件。当进行 if x or y的判断时,x需要是True可能性比较高的判断条件。

10.利用for循环代替while循环

干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升

上图的程序中,可以看到,同样的功能利用for循环来替代while循环,for循环的速度要快于while循环。

总结

通过以上的10个小的案例,我们没有利用任何的第三方库或者是装饰器,单纯的从程序优化的角度来提升了Python程序的运行速度。大家可以借鉴上述的十个小的案例,在日常的程序编写过程中提升程序的运行速度。

原文地址:https://mp.weixin.qq.com/s?__biz=MzU3MDI5NzY2Mg==&mid=2247487337&idx=1&sn=f6d647dc2e802cf203e2372af8f88ec0&chksm=fcf0d338cb875a2e1c9fa920f39d26c86a0a0f6a3b6d6f092269af7f35b86ca881ea36a36d89&mpshare=1&

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部