Pythonで数値を扱っていると、リストに入っている値の合計を求めたい場面があります。
例えば、テストの合計点を計算したり、毎日の売上を集計したりするときです。
Pythonには、複数の数値を簡単に合計できる「sum()」が用意されています。この記事では、「sum()」の基本的な使い方から、for文を使って合計する仕組み、計算時の注意点まで初心者向けに解説します。
sum()でリストを合計する
リストに入っている数値を合計する最も簡単な方法は、「sum()」を使うことです。
# 数値を入れたリスト
numbers = [10, 20, 30, 40]
# リスト内の数値を合計
total = sum(numbers)
# 結果を表示
print(total) # 100「sum()」に数値のリストを渡すと、すべての要素を足した結果が返されます。
計算の内容は次のとおりです。
10 + 20 + 30 + 40 = 100合計を求めるだけなら、この方法が最も短く分かりやすいでしょう。
小数を含むリストも合計できる
「sum()」では、整数だけでなく小数も合計できます。
# 商品の価格
prices = [120.5, 300.0, 89.5]
# 価格の合計を計算
total = sum(prices)
print(total) # 510.0整数と小数が混ざったリストも計算できます。
numbers = [10, 2.5, 7]
total = sum(numbers)
print(total) # 19.5ただし、小数はコンピューター内部で完全に正確に表せない場合があります。金額を厳密に計算するプログラムでは「Decimal」を使う方法もありますが、基本的な学習や簡単な集計では「sum()」で十分です。
初期値を加えて合計する
「sum()」には、計算を始めるときの初期値を指定できます。
# 今回追加する点数
scores = [20, 15, 30]
# すでに取得している100点から加算する
total = sum(scores, 100)
print(total) # 165このコードでは、初期値の「100」にリスト内の数値を加えています。
100 + 20 + 15 + 30 = 165「sum()」の基本的な書き方は次のとおりです。
sum(合計するデータ, 初期値)初期値を省略した場合は、「0」から計算が始まります。
通常は初期値を指定しなくても問題ありません。すでにある合計へ新しいデータを加えたい場合などに利用できます。
for文を使って合計する
「sum()」を使わず、for文で数値を一つずつ加えることもできます。
# 数値を入れたリスト
numbers = [10, 20, 30, 40]
# 合計を保存する変数
total = 0
# 数値を一つずつ取り出す
for number in numbers:
total += number
print(total) # 100最初に合計を保存する「total」を「0」にします。
for文でリストから数値を一つずつ取り出し、現在の「total」へ加えます。処理の流れは次のようになります。
0 + 10 = 10
10 + 20 = 30
30 + 30 = 60
60 + 40 = 100実際のプログラムでは「sum()」を使うほうが簡単です。しかし、for文による書き方を確認すると、合計が「現在の結果へ次の値を加え続ける処理」であることを理解できます。
便利な関数を使うだけでなく、その内部で行われている考え方を知ることは、ほかの処理を学ぶときにも役立ちます。
条件に合う数値だけを合計する
実際のデータ処理では、リスト内のすべてではなく、条件に合う数値だけを合計したいことがあります。
次の例では、偶数だけを合計しています。
# 数値を入れたリスト
numbers = [1, 2, 3, 4, 5, 6]
# 偶数だけを合計
total = sum(number for number in numbers if number % 2 == 0)
print(total) # 12合計されるのは「2」「4」「6」です。
2 + 4 + 6 = 12この書き方では、「どの値を合計の対象にするか」を条件で決めています。
最初は少し複雑に見えるため、慣れないうちはfor文で書いても構いません。
numbers = [1, 2, 3, 4, 5, 6]
total = 0
for number in numbers:
# 偶数の場合だけ加算する
if number % 2 == 0:
total += number
print(total) # 12空のリストを合計すると0になる
要素が一つも入っていない空のリストを「sum()」に渡すと、結果は「0」になります。
# 空のリスト
numbers = []
total = sum(numbers)
print(total) # 0これは、数値を一つも加えていないためです。
エラーにはなりませんが、プログラムの目的によっては注意が必要です。
例えば、売上の合計が「0」なのか、売上データがまだ登録されていないのかでは意味が異なります。データの有無を区別したい場合は、先にリストを確認します。
numbers = []
# データがある場合だけ合計する
if numbers:
print(sum(numbers))
else:
print("データがありません")「計算できること」と「その結果を0として扱ってよいこと」は別です。数値だけでなく、データがどのような状態なのかも意識すると、実用的なコードになります。
文字列が含まれているとエラーになる
「sum()」で合計できるのは、基本的に数値です。
リストに文字列が含まれているとエラーになります。
numbers = [10, 20, "30"]
# 文字列が含まれているためエラーになる
total = sum(numbers)引用符で囲まれた「”30″」は、見た目が数字でも文字列です。
入力やファイルから取得したデータが文字列になっている場合は、数値に変換してから合計します。
# 数字を表す文字列
numbers = ["10", "20", "30"]
# int()で整数に変換して合計
total = sum(int(number) for number in numbers)
print(total) # 60データを合計するときは、リストの中身が数値になっているか確認することが大切です。
まとめ
Pythonでリスト内の数値を合計する場合は、「sum()」を使うのが基本です。
numbers = [10, 20, 30, 40]
total = sum(numbers)
print(total) # 100この記事で紹介したポイントは次のとおりです。
- 「sum()」を使うとリスト内の数値を簡単に合計できる
- 第2引数で計算の初期値を指定できる
- for文でも一つずつ加算できる
- 条件に合う数値だけを合計することもできる
- 空のリストを合計すると「0」になる
- 文字列を合計する場合は数値への変換が必要になる
合計とは、複数の数値を一つの結果へまとめる処理です。
「sum()」の書き方だけでなく、値を一つずつ加えて結果を更新する仕組みも理解しておくと、平均値や条件付き集計など、次の学習へ進みやすくなります。

