次のような数字のリストがあるとします。
[1, 2, 3, 4, 5, ...]
合計額を計算するにはどうすればよいですか?
1 + 2 + 3 + 4 + 5 + ...
ペアワイズ平均を計算するにはどうすればいいですか?
[(1+2)/2, (2+3)/2, (3+4)/2, (4+5)/2, ...]
ベストアンサー1
質問1:
数値のリストを合計するには、sum
:
xs = [1, 2, 3, 4, 5]
print(sum(xs))
出力は次のようになります:
15
質問2:
つまり、(要素 0 + 要素 1) / 2、(要素 1 + 要素 2) / 2、... というようになります。
2 つのリストを作成します。1 つは最初の要素を除くすべての要素のリスト、もう 1 つは最後の要素を除くすべての要素のリストです。必要な平均は、2 つのリストから取得した各ペアの平均です。2zip
つのリストからペアを取得するには、を使用します。
入力値が整数であっても、結果に小数点を表示したいとお考えだと思います。デフォルトでは、Python は整数除算を行います。つまり、余りは切り捨てられます。端から端まで除算するには、浮動小数点数を使用する必要があります。幸い、int を float で除算すると float が生成されるため、2.0
除数には ではなく を使用します2
。
したがって:
averages = [(x + y) / 2.0 for (x, y) in zip(my_list[:-1], my_list[1:])]