Pythonのsum()関数は、イテラブルオブジェクト(リストや数値のシーケンス)の要素の合計を計算するための組み込み関数です。この記事では、sum()関数の基本的な使い方から実践的な例まで、わかりやすく解説します。
基本的な使い方
sum()関数の基本的な構文は以下の通りです:
sum(iterable, start=0)- iterable: 合計を計算したい数値のシーケンス(リストやタプルなど)
- start: 合計の初期値(オプション、デフォルトは0)
使用例と実践的なコード
1. リストの合計を計算する
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total) # 出力: 152. 初期値を指定する
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.54. ジェネレーター式との組み合わせ
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で数値の合計を簡単に計算できる便利な関数です。基本的な使い方は簡単ですが、以下の点に注意が必要です:
- 数値のシーケンスにのみ使用可能
- 文字列の結合には使用不可
- 浮動小数点数の計算では精度に注意
- 初期値の指定が可能
これらの点を押さえておけば、効率的にデータの合計を計算することができます。