成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

干貨技巧!不需要任何工具,10個案例讓Python執(zhí)行速度飛速提升

開發(fā) 后端
對于Python程序來說,雖然程序編寫簡單,容易上手,但是相比于C++、Java等編程語言,Python程序的運(yùn)行速度卻沒有優(yōu)勢。

 雖然有很多的第三方庫可以幫助提升Python的運(yùn)行速度,但是使用起來非常的麻煩。今天,小編想從程序編寫的角度,來提升程序的運(yùn)行速度。

1.巧妙的利用Python的數(shù)據(jù)類型

 

在Python程序中,對于list列表進(jìn)行 for i in list1的操作時,其時間復(fù)雜度為O(n),而對于set進(jìn)行for i in set1的操作,時間復(fù)雜度為O(1)。所以在程序的執(zhí)行時間上,就會出現(xiàn)非常大的差距。

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

 

利用迭代器來代替列表,已經(jīng)逐漸的成為了Python編程者使用的一種方法,利用迭代器的操作,不僅可以節(jié)省時間,更重要的是可以節(jié)省大量的內(nèi)存空間,上圖中,利用列表的操作需要占用大約8M的內(nèi)存,但是迭代器只需要88個字節(jié)。

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

 

上圖程序中,全局的變量z放入到函數(shù)myFunc中,局部變量的執(zhí)行時間要小于全局變量,因此程序執(zhí)行的時間也大大的縮短。

4.避免“點(diǎn)”操作

 

上圖中可以看到,calculateSqrtWithDot函數(shù)和calculateSqrt函數(shù)唯一的區(qū)別在于是否通過點(diǎn)操作來調(diào)用sqrt函數(shù)。每當(dāng)我們點(diǎn)操作來調(diào)用函數(shù)時,就會觸發(fā)特定的方法,例如,__getattribute__() 和__getattr__(),這樣的方法會調(diào)用字典操作,從而帶來時間的消耗,因此在程序調(diào)用第三方庫時候,可以盡量使用from xx import xx的方法來進(jìn)行調(diào)用。

5.避免不必要的類抽象

 

在類中,盡量不要去使用裝飾器,描述符等操作來包裝程序,這會給程序的運(yùn)行帶來負(fù)擔(dān),所以如果沒有必要的話,就不要去這樣包裝程序。

6.避免沒有意義的數(shù)據(jù)拷貝

 

上圖的程序中,list6是一次沒有意義的數(shù)據(jù)拷貝,不僅造成了程序運(yùn)行時間的損耗,而且造成了內(nèi)存資源的浪費(fèi)。

7.更改值時避免使用臨時變量

 

上述的程序中,temp的臨時變量是不需要的,使用臨時變量temp造成了程序運(yùn)行時間的增加。

8.字符串變量的操作

 

當(dāng)字符串str1和str2操作使用“+”號操作時,Python解釋器將申請內(nèi)存空間,將數(shù)據(jù)str1和str2分別復(fù)制到新的內(nèi)存空間中去,所以當(dāng)進(jìn)行N次的字符串”+“操作時,將會生成N-1個中間的結(jié)果,并且每個中間結(jié)果都會復(fù)制到新的內(nèi)存空間中。

當(dāng)使用join函數(shù)時,join函數(shù)將會一次性計(jì)算所需的所有內(nèi)存空間,然后申請內(nèi)存空間,并將所有的字符串元素復(fù)制到申請的內(nèi)存中去。

9.巧用if判斷

 

在運(yùn)用if進(jìn)行判斷時,常用的有兩種方式。 1 if ...and...。 2 if... or ...。為了節(jié)省程序的運(yùn)算時間,當(dāng)進(jìn)行if x and y的判斷時,x需要是False可能性比較高的判斷條件。當(dāng)進(jìn)行 if x or y的判斷時,x需要是True可能性比較高的判斷條件。

10.利用for循環(huán)代替while循環(huán)

 

上圖的程序中,可以看到,同樣的功能利用for循環(huán)來替代while循環(huán),for循環(huán)的速度要快于while循環(huán)。

總結(jié)

通過以上的10個小的案例,我們沒有利用任何的第三方庫或者是裝飾器,單純的從程序優(yōu)化的角度來提升了Python程序的運(yùn)行速度。大家可以借鑒上述的十個小的案例,在日常的程序編寫過程中提升程序的運(yùn)行速度。

責(zé)任編輯:華軒 來源: 菜鳥編程大本營
相關(guān)推薦

2018-01-25 09:28:49

代碼開發(fā)工具

2018-01-17 15:33:14

2021-02-05 10:57:03

邊緣計(jì)算首席運(yùn)營官

2024-11-01 07:30:00

2016-10-09 20:07:43

2016-02-22 09:27:18

2021-11-03 06:28:21

Python運(yùn)行速度開發(fā)

2020-05-29 09:51:07

工具代碼開發(fā)

2020-04-27 09:40:13

Reacthooks前端

2020-03-12 14:40:59

Python表格命令行

2017-03-13 13:54:40

戴爾

2012-08-23 09:50:07

測試測試人員軟件測試

2009-11-23 12:45:22

2024-04-29 06:50:45

Python代碼運(yùn)行

2013-07-08 11:16:05

Windows 7

2020-12-07 08:15:11

機(jī)器學(xué)習(xí)人工智能AI

2018-09-19 12:51:31

樟宜國際機(jī)場自動化機(jī)器人

2015-09-30 09:57:53

天分熱情工程師

2015-08-20 10:56:19

算法界面開發(fā)

2013-12-02 09:43:29

字符串編程
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 午夜免费福利片 | 国产亚洲精品成人av久久ww | 国产精品一二三区 | 久久精品视频在线观看 | 成人在线一区二区三区 | 黄视频免费在线 | 久久免费视频网 | 国产精品久久久久久久久久久久久 | 国产免费一区二区 | 毛片免费观看 | 日日干天天操 | 国产视频日韩 | 久久国产精品免费一区二区三区 | 国产精品伦一区二区三级视频 | 四虎影院免费在线 | 国产成人一区二区三区久久久 | 亚洲午夜网 | 亚洲精品在线免费 | 亚洲国产情侣自拍 | 欧美激情在线播放 | 精品国产欧美一区二区 | 国产精品夜间视频香蕉 | 在线日韩不卡 | 欧美男人天堂 | 精品无码久久久久久国产 | 国产大片黄色 | 国产精品不卡一区 | 国产精品国产精品国产专区不蜜 | 久久精品在线播放 | 青青草综合 | 欧美精品成人影院 | 国产精品毛片一区二区在线看 | 免费精品一区 | 成人午夜激情 | 麻豆久久精品 | 亚洲综合色 | 国产成人精品一区二区三区四区 | 国产精品久久久久久久午夜 | 欧美成人猛片aaaaaaa | 国产日韩精品久久 | 久久久久久久久久久丰满 |