Pythonでリスト内の数値を合計するには、組み込み関数のsum()を使います。
複雑な処理を書く必要はなく、合計したいリストをsum()に渡すだけです。
sum()でリストの合計を求める
次のリストに入っている数値を合計してみましょう。
numbers = [10, 20, 30, 40]
total = sum(numbers)
print(total)実行結果は次のとおりです。
100
sum(numbers)は、リストnumbersの要素を先頭から順番に足し合わせます。
今回の処理は、次の計算をまとめて行っていると考えると分かりやすいでしょう。
10 + 20 + 30 + 40 = 100
Pythonで数値のリストを合計するなら、基本的にはsum()を使うのが最も簡単です。
小数を含むリストも合計できる
sum()は、整数だけでなく小数を含むリストにも使用できます。
prices = [120.5, 300.0, 89.5]
total = sum(prices)
print(total)実行結果は次のとおりです。
510.0
買い物金額、点数、作業時間など、複数の数値をまとめて計算するときに利用できます。
合計値に最初の数値を加える
sum()の第2引数を指定すると、リストの合計に任意の数値を加えられます。
numbers = [10, 20, 30]
total = sum(numbers, 100)
print(total)実行結果は次のとおりです。
160
この例では、最初の値を100として、そこにリスト内の10、20、30を加えています。
つまり、次のように計算されています。
100 + 10 + 20 + 30 = 160
ただし、単純にリスト内の数値だけを合計したい場合、第2引数は必要ありません。
空のリストを合計すると0になる
要素が入っていない空のリストにsum()を使っても、エラーにはなりません。
numbers = []
total = sum(numbers)
print(total)実行結果は次のとおりです。
0
足し合わせる数値が1つもないため、結果は0になります。
リストが空になる可能性がある処理でも、そのままsum()を使用できます。
文字列が含まれているとエラーになる
sum()で合計できるのは、基本的に整数や小数などの数値です。
リストの中に文字列が含まれていると、TypeErrorが発生します。
numbers = [10, "20", 30]
total = sum(numbers)
print(total)"20"は数字のように見えますが、引用符で囲まれているため文字列です。数値の20とは別のデータとして扱われます。
文字列として保存された数字は、int()を使って整数に変換してから合計します。
numbers = ["10", "20", "30"]
converted_numbers = [int(number) for number in numbers]
total = sum(converted_numbers)
print(total)実行結果は次のとおりです。
60
sum()でエラーが発生したときは、リストの中に文字列や別の種類のデータが混ざっていないか確認してください。
for文でも合計できる
sum()が内部で何をしているのかを理解するため、for文で同じ処理を書いてみます。
numbers = [10, 20, 30, 40]
total = 0
for number in numbers:
total += number
print(total)totalを0から始め、リストから取り出した数値を1つずつ加えています。
この書き方でも結果は100になりますが、単純に合計を求めるだけならsum()のほうが短く、処理の目的も伝わりやすくなります。
まとめ
Pythonでリストの合計を求めるには、sum()を使用します。
numbers = [10, 20, 30]
total = sum(numbers)
print(total)数値だけが入ったリストなら、これだけで合計を取得できます。
文字列が含まれている場合はそのまま計算できないため、int()などを使って数値に変換してからsum()に渡しましょう。

