加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

90%的人说Python程序慢,5大神招让你的代码像赛车一样跑起来

发布时间:2019-03-22 05:39:28 所属栏目:建站 来源:Leoxin
导读:许多人诉苦说本身写的Python代码跑的慢,尤其是当处理赏罚的数据集较量大的时辰,着实轻微窜改几行代码就可以让你的代码机能进步好几倍,不信一路来看下面这个5个小能力。 1.for 轮回 二者的机能差距有多大呢,一样平常我们用内置的timeit模块来量化较量: 把传统的

许多人诉苦说本身写的Python代码跑的慢,尤其是当处理赏罚的数据集较量大的时辰,着实轻微窜改几行代码就可以让你的代码机能进步好几倍,不信一路来看下面这个5个小能力。

1.for 轮回

90%的人说Python措施慢,5大神招让你的代码像赛车一样跑起来

二者的机能差距有多大呢,一样平常我们用内置的timeit模块来量化较量:

把传统的for改成推导列表,高下立判,机能进步了许多,晋升了200%

2.用set而不消list

我们再来看一个常见的场景,搜刮机能的时辰用set是列表10倍,不信看下面这个例子

缘故起因搜刮成员的时辰,Python的set比list快许多。差距就在if i in mylist 和if i in myset。列表的伟大度是O(n),而集和的伟大度是O(1),搜刮起来必定是set快!

3.互换if和for的位置

许多时辰,我们是在for轮回内部举办前提判定,轮回一个变量,然后用if/else举办判定。对付这样的环境,可以优化一下,把if/else提到for轮回外边,也可以进步机能。

4.奇妙的用try/except语句

许多时辰在一个for轮回内部,对i举办计较,然后添加到一个list内里,假如能奇妙地操作try/except,可以挣脱对if/else搜查的开销,从而进步机能。

5.神器collection模块

collection库提供了许多模块,这些模块很是有效,有一些模块是跟容器有关,大部门的拭魅战项目我们城市用到。好比deque双向行列和defaultdict缺省字典。

1).双向行列deque

deque是双向行列,假如你的营业逻辑内里必要大量的从行列的头可能尾部删除,添加,用deque的机能会大幅进步!假如只是小行列,而且对元素必要随机遇见操纵,那么list会快一些。

2).缺省字典defaultdict

对付字典的行使,我们要学会用defaultdict来取代,一来是由于有缺省值很是安详,假如会见不存在的key,不会报错;二来是Pyhon机能会大幅进步。

仅仅换了字典数据布局,机能就大幅的进步了3倍。

Python内里的能力照旧许多的,尤其是机能优化这块,Py3已经比Py2机能上高了很多,假如我们在平常写代码的时辰,能多一份思索,代码不只能work还能晋升机能,,信托你常常这样思索,逐步的就会成为好手啦!虽然许多新手常常不得法,可以看看这个捷径。

【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读