【sum】Pythonでリスト要素の合計を計算する方法を解説

Python

Pythonでリスト要素の合計を計算するにはsum()関数を使うのが効率的です。この記事を読むことで、sum関数の基本的な使い方から応用例、注意点まで理解できます。

sumの使い方

Pythonのsum関数は、イテラブル(例えばリストやタプル)の要素の合計を計算して返します。数値型(int、float)の要素を簡単に合計できます。

構文

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

sum(iterable, start=0)

iterableはリストやタプルなどの合計を求める対象です。startは合計の初期値を指定するパラメータで、省略可能でデフォルト値は0です。

基本的なsum関数の使い方を示します。この例では1から5までの整数を含むリストの合計を計算しています。

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

初期値を指定する例

sum関数の第二引数に初期値を指定すると、その値から合計を開始します。この例では初期値として10を指定しているため、リストの合計15に10が加算されて25になります。

numbers = [1, 2, 3, 4, 5]
total = sum(numbers, 10)
print(total)  # 25

注意点

数値型以外の要素が含まれているとエラーになる

sum関数は数値型の要素のみを処理できるという制限があります。リスト内に文字列などの数値以外の要素が含まれていると、以下のようにTypeErrorが発生します。

items = [1, '2', 3]
print(sum(items))  # TypeError: unsupported operand type(s) for +: 'int' and 'str'

文字列の結合はjoin()を使う

文字列を連結したい場合は、sum関数ではなく専用のjoin関数を使用するべきです。join関数は文字列リストを効率的に連結できます。

words = ['Hello', 'World']
print(''.join(words))  # HelloWorld

浮動小数点の精度に注意

浮動小数点数を扱う際には精度の問題が発生することがあります。多数の浮動小数点数を合計する場合、sum関数では丸め誤差が蓄積することがあります。より高精度な計算が必要な場合は、math.fsum関数を使用することで精度を向上させることができます。

import math

numbers = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
print(sum(numbers))        # 0.9999999999999999
print(math.fsum(numbers))  # 1.0

まとめ

Pythonでリスト要素の合計を計算するにはsum()関数が最適です。シンプルな構文で効率的に合計値を求められ、初期値の設定も可能です。ただし数値型以外の要素が含まれるとエラーになるため注意が必要です。文字列連結にはjoin()を使い、高精度な浮動小数点計算にはmath.fsum()を使用しましょう。

タイトルとURLをコピーしました