おそらくPythonライブラリで、forループよりも速く数値のリストを合計する方法はありますか? それとも、それは本当にマルチスレッド/ベクトル処理だけが効率的にできることですか?
編集:明確にするために、それは、ユーザーから入力された、ソートされていない任意の数字のリストである可能性があります。
sum() を使用して、配列の値を合計できます。
a = [1,9,12]
print sum(a)
リストをループ時間で合計するさらに別の方法:
s = reduce(lambda x, y: x + y, l)
リスト内の各項が単純に 1 ずつ増加する場合、または一連のパターンにパターンが見つかれば、n 個の項を合計する式を見つけることができます。たとえば、系列 {1,2,3,...,n} の合計 = n(n+1)/2
詳細はこちら
まあ、それが速いかどうかはわかりませんが、ちょっとした微積分を試して 1 つの操作にすることができます。(N*(N+1))/2 は、1 から N までのすべての数値の合計を返します。より複雑な合計を解くための他の式があります。
一般的なリストの場合、すべてのメンバーを少なくとも 1 回調べて合計を取得する必要があります。これはまさに for ループが行うことです。ライブラリ API (sum など) を使用する方が便利ですが、実際に高速になるとは思えません。