自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

漫畫 | 假裝自己是Python高手,學(xué)會這十招就可以

開發(fā) 后端
Python是一門簡單易學(xué),而且功能非常強大的語言,目前是火的一大糊涂,據(jù)說除了生孩子啥都干。

 [[315600]]

Python是一門簡單易學(xué),而且功能非常強大的語言,目前是火的一大糊涂,據(jù)說除了生孩子啥都干。但是Python有一個很致命的問題就是慢,看下面兩個人都吵起來:

01.招數(shù)一

在列表里面計數(shù)

性能:第二種計數(shù)方法比第一種快6290倍,為啥因為Python原生的內(nèi)置函數(shù)都是優(yōu)化過的,所以能用原生的計算的時候,盡量用原生的函數(shù)來計算。

02.招數(shù)二

過濾一個列表

性能:第二種方法比第一種慢近50%,有人可能覺得filter應(yīng)該會快一些,其實filter增加了復(fù)雜度,返回一個迭代對象再用list轉(zhuǎn)化為一個列表,所以開銷大一些。其實最快是推導(dǎo)列表,比第一種性能提高近30%。

03.招數(shù)三

善用異常,事半功倍

性能:第二種比第一種快了近3倍,簡單粗暴直接用異常,而第一種會通過內(nèi)置函數(shù)hasattr來先檢查,查找內(nèi)部類的屬性,增加了開銷。

04.招數(shù)四

列表成員檢查

性能:第二種比第一種快了1倍,直接用in這樣的方法檢查列表內(nèi)部成員比遍列要快很多的。當(dāng)然如果你的num是在列表的頭部,搜索會更快!

05.招數(shù)五

去重

性能:第二種比第一種快了近400倍,所以能用原生的內(nèi)置的數(shù)據(jù)結(jié)構(gòu),一定要用原生的。不過相信大部分同學(xué)去重都開始用set了。

06.招數(shù)六

列表的排序

性能:第二種比第一種快了近6倍,sorted函數(shù)會把原來的列表進行排序然后再返回一個新的列表,而sort函數(shù)直接再原來的列表上面排序,節(jié)省了開銷。

07.招數(shù)七

把迭代循環(huán)放到函數(shù)里面

性能:第二種要比第一種快了20%多,原因是因為把重復(fù)的循環(huán)直接放到了一次性的塞入函數(shù),要把你調(diào)用1000次函數(shù)開銷小很多。

08.招數(shù)八

檢查是否為True

性能:最快的是第三種(直接用if)比第一種快了60%,不需要用借助==和is來進行判斷。因為==會調(diào)用內(nèi)置的魔法函數(shù)__eq__來比較左右兩邊的類型,而直接用if來判斷var是否為空,None,空的列表,字典會快很多。

09.招數(shù)九

檢查列表是否為空

性能:第三種最快,第三種比第一種快了3倍;其實大部人新手都喜歡用len來判斷,其實我也是,這個習(xí)慣要改。

10.最后一招

性能:沒有對比沒有傷害,因為Python一切皆對象,所以當(dāng)你用list()生成一個對象的時候會產(chǎn)生開銷,而[]直接返回一個list,會快很多,同理dict也是一樣的。

大家可以反思一下自己的代碼里面有沒有上面這幾招的代碼,回去優(yōu)化一下,會對你的性能有很大的提高?;蛘卟锁B也可以直接背下來,面試的時候也許可以假裝一把高手。

 

責(zé)任編輯:華軒 來源: 菜鳥學(xué)Python
相關(guān)推薦

2020-08-31 08:14:46

Python開發(fā)代碼

2024-05-06 11:12:22

圖像處理數(shù)學(xué)計算NumPy

2022-10-17 07:16:08

SQL機器學(xué)習(xí)AI

2018-07-19 06:07:22

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IOT

2021-04-13 11:12:58

電腦WindowsIT

2022-02-28 17:57:44

云遷移云計算

2018-11-27 09:21:41

負載均衡機器Session

2017-02-13 09:33:32

2022-02-28 22:58:04

云遷移IT開發(fā)

2020-11-19 08:00:03

打工人離職工作

2018-03-01 15:00:15

Oracle數(shù)據(jù)中心云計算

2018-12-03 08:04:25

負載均衡機器流量

2015-07-10 11:18:19

2018-10-23 19:30:38

2012-09-24 11:06:39

社交產(chǎn)品創(chuàng)業(yè)創(chuàng)業(yè)秘訣

2020-09-17 15:59:37

Java技術(shù)開發(fā)

2020-07-06 10:55:38

CIO首席信息官IT

2009-03-17 08:46:57

Windows 7微軟發(fā)布

2009-10-21 09:46:13

VB使用ArrayLi

2021-02-23 07:01:24

js小游戲技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號