分享5個(gè)python提速技巧,速度瞬間提上來了
1、跳過迭代對(duì)象的開頭
string_from_file = """ ?
// Wooden: ... ?
// LaoLi: ... ?
// ?
// Whole: ... ?
Wooden LaoLi...?
?"""?
import itertools ?
for line in itertools.dropwhile(lambda line: line.startswith("http://"), string_from_file.split(" ")):
? ? print(line)?2、避免數(shù)據(jù)復(fù)制
# 不推薦寫法,代碼耗時(shí):6.5秒 def main(): ? ? size = 10000 ? ? for _ in range(size): ? ? ? ? value = range(size) ? ? ? ? value_list = [x for x in value] ? ? ? ? square_list = [x * x for x in value_list] ? main()
# 推薦寫法,代碼耗時(shí):4.8秒 def main(): ? ? size = 10000 ? ? for _ in range(size): ? ? ? ? value = range(size) ? ? ? ? square_list = [x * x for x in value] ?# 避免無意義的復(fù)制
3、避免變量中間變量
# 不推薦寫法,代碼耗時(shí):0.07秒 def main(): ? ? size = 1000000 ? ? for _ in range(size): ? ? ? ? a = 3 ? ? ? ? b = 5 ? ? ? ? temp = a ? ? ? ? a = b ? ? ? ? b = temp ? main()
# 推薦寫法,代碼耗時(shí):0.06秒 def main(): ? ? size = 1000000 ? ? for _ in range(size): ? ? ? ? a = 3 ? ? ? ? b = 5 ? ? ? ? a, b = b, a ?# 不借助中間變量 ? main()
4、循環(huán)優(yōu)化
# 不推薦寫法。代碼耗時(shí):6.7秒 def computeSum(size: int) -> int: ? ? sum_ = 0 ? ? i = 0 ? ? while i < size: ? ? ? ? sum_ += i ? ? ? ? i += 1 ? ? return sum_ ? def main(): ? ? size = 10000 ? ? for _ in range(size): ? ? ? ? sum_ = computeSum(size) ? main()
# 推薦寫法。代碼耗時(shí):4.3秒 def computeSum(size: int) -> int: ? ? sum_ = 0 ? ? for i in range(size): ?# for 循環(huán)代替 while 循環(huán) ? ? ? ? sum_ += i ? ? return sum_ ? def main(): ? ? size = 10000 ? ? for _ in range(size): ? ? ? ? sum_ = computeSum(size) ? main()
隱式for循環(huán)代替顯式for循環(huán)
# 推薦寫法。代碼耗時(shí):1.7秒 def computeSum(size: int) -> int: ? ? return sum(range(size)) ?# 隱式 for 循環(huán)代替顯式 for 循環(huán) ? def main(): ? ? size = 10000 ? ? for _ in range(size): ? ? ? ? sum = computeSum(size) ? main()
5、使用numba.jit
# 推薦寫法。代碼耗時(shí):0.62秒 # numba可以將 Python 函數(shù) JIT 編譯為機(jī)器碼執(zhí)行,大大提高代碼運(yùn)行速度。 import numba ? @numba.jit def computeSum(size: float) -> int: ? ? sum = 0 ? ? for i in range(size): ? ? ? ? sum += i ? ? return sum ? def main(): ? ? size = 10000 ? ? for _ in range(size): ? ? ? ? sum = computeSum(size) ? main()
到此這篇關(guān)于分享5個(gè)python提速技巧,速度瞬間提上來了的文章就介紹到這了,更多相關(guān)python提速技巧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Python數(shù)據(jù)可視化中文部分顯示方塊問題
這篇文章主要介紹了解決Python數(shù)據(jù)可視化中文部分顯示方塊問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
淺談anaconda python 版本對(duì)應(yīng)關(guān)系
這篇文章主要介紹了淺談anaconda python 版本對(duì)應(yīng)關(guān)系,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Django實(shí)現(xiàn)學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Django實(shí)現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
Python爬蟲如何應(yīng)對(duì)Cloudflare郵箱加密
這篇文章主要介紹了Python爬蟲如何應(yīng)對(duì)Cloudflare郵箱加密,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
windows server 2008 r2 標(biāo)準(zhǔn)版安裝python環(huán)境
本文主要介紹了windows server 2008 r2 標(biāo)準(zhǔn)版安裝python環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Python實(shí)現(xiàn)圖片滑動(dòng)式驗(yàn)證識(shí)別方法
驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動(dòng)化的場(chǎng)景中。這篇文章主要介紹了Python實(shí)現(xiàn)圖片滑動(dòng)式驗(yàn)證識(shí)別方法,需要的朋友可以參考下2017-11-11

