python編程是啥 python循環(huán)內(nèi)要處理大量數(shù)據(jù)時怎么優(yōu)化?
python循環(huán)內(nèi)要處理大量數(shù)據(jù)時怎么優(yōu)化?先嘗試優(yōu)化程序的時間復(fù)雜度,找到更有效的算法在保證算法復(fù)雜度在可接受范圍內(nèi)后,開始不斷優(yōu)化。下面是一些Python優(yōu)化的技巧:實際測量表明for語句通常比w
python循環(huán)內(nèi)要處理大量數(shù)據(jù)時怎么優(yōu)化?
先嘗試優(yōu)化程序的時間復(fù)雜度,找到更有效的算法
在保證算法復(fù)雜度在可接受范圍內(nèi)后,開始不斷優(yōu)化。下面是一些Python優(yōu)化的技巧:
實際測量表明for語句通常比while語句更有效
同樣,實際測量表明xrange通常比range更有效
如果要存儲動態(tài)數(shù)據(jù)(也就是說,它是可能的),測量表明兩個str的連接效率是從高到低=,join,
多個str的連接效率是從高到低=,join,
,
嘗試使用列表解析表達式和生成器表達式而不是循環(huán)來構(gòu)建列表
]避免使用全局關(guān)鍵字,無論是從代碼效率還是可移植性的角度來看
這個答案適用于python3.xpython,而且速度比較慢。但相對而言,python的編寫方式比directfor循環(huán)更快。例如,循環(huán)的標(biāo)準(zhǔn)編寫如下:對于范圍(10000)中的I:I**2,速度較慢,而標(biāo)準(zhǔn)編寫的嵌套循環(huán)速度較慢。它可以重寫為一個列表推理:[I**2 for I in range(10000)],這比direct for loop的標(biāo)準(zhǔn)編寫方法快得多。此外,它還可以使用Python的高級函數(shù)映射來執(zhí)行自動并行計算。它也可以寫成列表(map(lambda I:I**2,range(10000)))。map函數(shù)幾乎和list推理一樣快。
python如何提高for循環(huán)效率?
為了解決運行效率的問題,Python是一種粘合語言,所以在用C或Java重寫后,自然會嵌入需要高效運行的代碼塊。這是解決執(zhí)行效率問題的最有效途徑。