ホームページ >バックエンド開発 >Python チュートリアル >Python でリストの累積合計を効率的に計算するにはどうすればよいですか?
質問:
次のようなリスト内の数値の累積合計を見つけるにはどうすればよいですか? [4、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]
このアプローチは高度に最適化されており、大規模な数値演算に推奨されます。 arrays.
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 中国語 Web サイトの他の関連記事を参照してください。