問題:
我們如何找到清單中數字的累積和,例如[44 , 4 6, 4 6 12]?
簡介:
計算累積和涉及重複將下一個元素添加到運行總和。雖然這可以透過簡單的循環來實現,但使用 NumPy 或自訂 Python 生成器有更有效的方法。
NumPy 方法:
NumPy 的cumsum 函數提供了一個有效的解決方案:
import numpy as np time_interval = [4, 6, 12] np.cumsum(time_interval) # Output: [4, 10, 22]
此方法經過高度優化,建議用於大型數值運算
Python產生器:
對於純Python 中簡潔且節省記憶體的解決方案,請考慮使用產生器:
def accumu(iterable): yield next(iterable) for item in iterable: yield item + sum(accumu(iterable))
使用此產生器:
list(accumu(time_interval)) # Output: [4, 10, 22]
此生成器惰性地累積元素,使其適合迭代大型序列或當記憶體是一個問題時。
以上是如何在Python中高效率計算列表的累加和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!