数の配列(リスト)の合計を計算するには (sum)

各プログラミング言語での、数字の配列(リスト)の合計を計算する方法。

Scala lst.sum
Groovy lst.sum()
PHP array_sum($arr)
Python sum(lst)
Ruby arr.inject(:+)
Ruby 2.4- arr.sum
Perl sum(@arr)

Java

簡単に計算できるメソッドはないので、for文などでループして計算するしかない。

Scala

Signature:

要素(A)が IntDouble など数値の場合に限る。

Groovy

Signature:

このメソッドはJavaでは定義されておらず、Groovy独自のメソッド。

def lst = [1, 2, 3];
print lst.sum(); // => 6

PHP

array_sum関数を使うと簡単にできる。

$arr = array(1, 2, 3);
echo array_sum($arr);
// => 6

array_sum 関数 | PHP Manual
http://php.net/manual/ja/function.array-sum.php

Python

lst = [1, 2, 3]
print sum(lst)

Ruby / JRuby

arr = [1, 2, 3]
p arr.inject(:+)
# => 6

# Ruby2.4.0からは
p arr.sum
# => 6

Ruby 2.4以降は sum というメソッドが使える。

Perl

my @arr = (1, 2, 3);
my $sum = 0;
$sum += $_ for @arr;
print $sum; # => 6

またはList::Util というモジュールを使う例

use List::Util qw/sum/;

my @arr = (1, 2, 3);
my $sum = sum(@arr);
print $sum; # => 6

sh (シェルスクリプト)

1行に1つの数字が書かれたファイルからその合計を計算する例

# awkでのワンライナー
cat hoge.txt | awk '{sum+=$1}END{print sum}'

# perlでのワンライナー
cat hoge.txt | perl -nle '$s+=$_;END{print $s}'

平均の例

# awkでのワンライナー
cat hoge.txt | awk '{sum+=$1}END{print sum/NR}'

# perlでのワンライナー
cat hoge.txt | perl -nle '$s+=$_;END{print $s/$.}'

-> 数字が書かれたテキストファイルからその合計/平均を計算するには

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク