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

对于Python程序来讲,虽然程序编写简单,容易上手,可是相比于C++、Java等编程语言,Python程序的运行速度却没有优点。编程

7df7548ab94981df6237a5ebf50abe1a.png

虽然有不少的第三方库能够帮助提高Python的运行速度,可是使用起来很是的麻烦。今天,小编想从程序编写的角度,来提高程序的运行速度。app

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

image

在Python程序中,对于list列表进行 for i in list1的操做时,其时间复杂度为O(n),而对于set进行for i in set1的操做,时间复杂度为O(1)。因此在程序的执行时间上,就会出现很是大的差距。编程语言

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

image

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

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

image

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

4.避免“点”操做

image

上图中能够看到,calculateSqrtWithDot函数和calculateSqrt函数惟一的区别在因而否经过点操做来调用sqrt函数。每当咱们点操做来调用函数时,就会触发特定的方法,例如,getattribute() 和getattr(),这样的方法会调用字典操做,从而带来时间的消耗,所以在程序调用第三方库时候,能够尽可能使用from xx import xx的方法来进行调用。优化

5.避免没必要要的类抽象

image

在类中,尽可能不要去使用装饰器,描述符等操做来包装程序,这会给程序的运行带来负担,因此若是没有必要的话,就不要去这样包装程序。spa

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

image

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

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

image

上述的程序中,temp的临时变量是不须要的,使用临时变量temp形成了程序运行时间的增长。blog

8.字符串变量的操做

image

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

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

9.巧用if判断

image

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

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

image

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

总结

经过以上的10个小的案例,咱们没有利用任何的第三方库或者是装饰器,单纯的从程序优化的角度来提高了Python程序的运行速度。你们能够借鉴上述的十个小的案例,在平常的程序编写过程当中提高程序的运行速度。

相关文章
相关标签/搜索