簡體   English   中英

優化Python代碼以提高效率

[英]Optimizing Python code for efficiency

對此代碼進行概要分析表明大部分時間花在了日志操作上。 還有另一種方法可以在Python 3中編寫它以提高效率嗎? 用列表推導替換循環實際上效率較低,因為lambda是map。

def log_total(data): 
    total = 0.0   
    log = log(data) 
    for i in range(10000): 
        total += log/(i+1)  
    return total

謝謝!

我將log從你的總和中計算出來並緩存你的總和:

harmonic_series = sum(1. / i for i in range(1, 10001))  # Thanks, @mgilson

def log_total(data): 
    return log(data) * harmonic_series

您還可以使用PyPy來加速它。

可以在線寫lambda ,如下所示:

total = lambda data: log(data) * sum(1.0 / i for i in xrange(1, 10001))

我使用的是Python 2.7.3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM