Pythonのsum()関数は、イテラブルオブジェクト(リストや数値のシーケンス)の要素の合計を計算するための組み込み関数です。この記事では、sum()関数の基本的な使い方から実践的な例まで、わかりやすく解説します。

基本的な使い方

sum()関数の基本的な構文は以下の通りです:

sum(iterable, start=0)
  • iterable: 合計を計算したい数値のシーケンス(リストやタプルなど)
  • start: 合計の初期値(オプション、デフォルトは0)

使用例と実践的なコード

1. リストの合計を計算する

numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)  # 出力: 15

2. 初期値を指定する

numbers = [1, 2, 3]
total = sum(numbers, 10)
print(total)  # 出力: 16 (10 + 1 + 2 + 3)

3. タプルの合計を計算する

numbers = (1.5, 2.5, 3.5)
total = sum(numbers)
print(total)  # 出力: 7.5

4. ジェネレーター式との組み合わせ

numbers = [1, 2, 3, 4, 5]
even_sum = sum(x for x in numbers if x % 2 == 0)
print(even_sum)  # 出力: 6 (2 + 4)

注意点とよくあるエラー

1. 文字列の合計

sum()関数は数値のみを扱います。文字列の結合には使用できません。

# エラーになる例
strings = ['a', 'b', 'c']
# sum(strings)  # TypeError: unsupported operand type(s) for +: 'int' and 'str'

# 文字列の結合は join() を使用
result = ''.join(strings)

2. 2次元リストの合計

2次元リストの場合は、内包表記やitertoolsを使用します。

matrix = [[1, 2], [3, 4]]
total = sum(sum(row) for row in matrix)
print(total)  # 出力: 10

パフォーマンスの考慮

大量のデータを扱う場合、sum()関数は効率的です。ただし、浮動小数点数の計算では、精度の問題を考慮する必要があります。

import math
import statistics

# 浮動小数点数の計算
numbers = [0.1] * 10
print(sum(numbers))  # 出力: 0.9999999999999999

まとめ

sum()関数は、Pythonで数値の合計を簡単に計算できる便利な関数です。基本的な使い方は簡単ですが、以下の点に注意が必要です:

  • 数値のシーケンスにのみ使用可能
  • 文字列の結合には使用不可
  • 浮動小数点数の計算では精度に注意
  • 初期値の指定が可能

これらの点を押さえておけば、効率的にデータの合計を計算することができます。