13

おそらくPythonライブラリで、forループよりも速く数値のリストを合計する方法はありますか? それとも、それは本当にマルチスレッド/ベクトル処理だけが効率的にできることですか?

編集:明確にするために、それは、ユーザーから入力された、ソートされていない任意の数字のリストである可能性があります。

4

5 に答える 5

35

sum() を使用して、配列の値を合計できます。

a = [1,9,12]
print sum(a)
于 2009-05-12T02:22:50.047 に答える
4

リストをループ時間で合計するさらに別の方法:

    s = reduce(lambda x, y: x + y, l)
于 2009-05-12T06:56:34.733 に答える
1

リスト内の各項が単純に 1 ずつ増加する場合、または一連のパターンにパターンが見つかれば、n 個の項を合計する式を見つけることができます。たとえば、系列 {1,2,3,...,n} の合計 = n(n+1)/2

詳細はこちら

于 2009-05-12T02:24:49.607 に答える
1

まあ、それが速いかどうかはわかりませんが、ちょっとした微積分を試して 1 つの操作にすることができます。(N*(N+1))/2 は、1 から N までのすべての数値の合計を返します。より複雑な合計を解くための他の式があります。

于 2009-05-12T02:26:32.833 に答える
-1

一般的なリストの場合、すべてのメンバーを少なくとも 1 回調べて合計を取得する必要があります。これはまさに for ループが行うことです。ライブラリ API (sum など) を使用する方が便利ですが、実際に高速になるとは思えません。

于 2009-05-12T02:31:29.720 に答える