MENU

Pythonでリストの合計を求める方法|sum()とfor文を初心者向けに解説

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()」の書き方だけでなく、値を一つずつ加えて結果を更新する仕組みも理解しておくと、平均値や条件付き集計など、次の学習へ進みやすくなります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次