arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
total = sum(arr) #=> 45
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
total = 0
for i in arr:
total += sum(i)
print(total) #=> 45
もっとスマートにこんな感じにも書けます。
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
total = sum(map(sum, arr))) #=> 45
最初の map(sum, arr)
の部分で子要素の合計値をそれぞれ求め、それをさらに sum()
で合計しています。
他にも、内包を使って記述することができます(中間オブジェクトの生成が抑制されるため、こちらのほうが若干高速になるようです)。
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
total = sum(sum(x) for x in arr) #=> 45