Python sum() 関数
sum()sum() は、Python で反復可能オブジェクトの要素の合計を求めるための組み込み関数です。
sum()sum() は、Python で最もよく使われる数学関数の一つで、リスト、タプル、セットなどの反復可能オブジェクト内のすべての要素の合計をすばやく計算できます。
単語の意味: sum「合計を求める」という意味で、一連の数値の合計を計算します。
基本構文とパラメータ
構文形式
sum(iterable, start)
パラメータの説明
- パラメータ iterable:
- 型:反復可能オブジェクト(リスト、タプル、セットなど)
- 説明:合計を求める対象の反復可能オブジェクト。
- パラメータ start(オプション):
- 型:数値
- 説明:開始値。デフォルトは 0。合計結果にこの値が加算されます。
関数の説明
- 戻り値:合計結果(整数または浮動小数点数)を返します。
- 要件:反復可能オブジェクトの要素は数値型(int、float)である必要があります。
実例
例1:基本的な使い方
実例
# リストの合計を求める
numbers = [1, 2, 3, 4, 5]
result = sum(numbers)
print(result) # 出力: 15
# タプルの合計を求める
result = sum((10, 20, 30))
print(result) # 出力: 60
# セットの合計を求める
result = sum({1, 2, 3})
print(result) # 出力: 6
# rangeの合計を求める
result = sum(range(1, 101))
print(result) # 出力: 5050(1から100までの合計)
# 空のリスト
result = sum([])
print(result) # 出力: 0
numbers = [1, 2, 3, 4, 5]
result = sum(numbers)
print(result) # 出力: 15
# タプルの合計を求める
result = sum((10, 20, 30))
print(result) # 出力: 60
# セットの合計を求める
result = sum({1, 2, 3})
print(result) # 出力: 6
# rangeの合計を求める
result = sum(range(1, 101))
print(result) # 出力: 5050(1から100までの合計)
# 空のリスト
result = sum([])
print(result) # 出力: 0
実行結果の予想:
15 60 6 5050 0
コード解析:
- リスト、タプル、セット、range など、さまざまな反復可能オブジェクトに対応しています。
- 空の反復可能オブジェクトの合計はデフォルトで 0 です。
例2:startパラメータの使用
実例
# 開始値を設定
numbers = [1, 2, 3]
# デフォルトは start=0
result = sum(numbers)
print(result) # 出力: 6
# start=10 を設定
result = sum(numbers, 10)
print(result) # 出力: 16(6 + 10)
# 負の開始値
result = sum(numbers, -10)
print(result) # 出力: -4(6 + -10)
# 累積和を計算するときに便利
scores = [90, 85, 95]
bonus = 5
total = sum(scores, bonus)
print(total) # 出力: 275(90+85+95+5)
numbers = [1, 2, 3]
# デフォルトは start=0
result = sum(numbers)
print(result) # 出力: 6
# start=10 を設定
result = sum(numbers, 10)
print(result) # 出力: 16(6 + 10)
# 負の開始値
result = sum(numbers, -10)
print(result) # 出力: -4(6 + -10)
# 累積和を計算するときに便利
scores = [90, 85, 95]
bonus = 5
total = sum(scores, bonus)
print(total) # 出力: 275(90+85+95+5)
実行結果の予想:
6 16 -4 275
コード解析:
- start パラメータは合計結果にこの値をさらに加算します。
- 合計点に基礎点や加点を加算するときによく使われます。
例3:実際の応用
実例
# 平均値を計算
numbers = [10, 20, 30, 40, 50]
average = sum(numbers) / len(numbers)
print(f"平均値: {average}") # 出力: 平均値: 30.0
# 条件付き合計を計算
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 偶数の合計を計算
even_sum = sum(x for x in data if x % 2 == 0)
print(f"偶数の合計: {even_sum}") # 出力: 偶数の合計: 30
# 辞書の合計(値の合計)を求める
prices = {'apple': 5, 'banana': 3, 'orange': 8}
total_price = sum(prices.values())
print(f"合計金額: {total_price}") # 出力: 合計金額: 16
# 1〜100 のうち 3 または 5 で割り切れる数の合計を計算
result = sum(x for x in range(1, 100) if x % 3 == 0 or x % 5 == 0)
print(result) # 出力: 2318
numbers = [10, 20, 30, 40, 50]
average = sum(numbers) / len(numbers)
print(f"平均値: {average}") # 出力: 平均値: 30.0
# 条件付き合計を計算
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 偶数の合計を計算
even_sum = sum(x for x in data if x % 2 == 0)
print(f"偶数の合計: {even_sum}") # 出力: 偶数の合計: 30
# 辞書の合計(値の合計)を求める
prices = {'apple': 5, 'banana': 3, 'orange': 8}
total_price = sum(prices.values())
print(f"合計金額: {total_price}") # 出力: 合計金額: 16
# 1〜100 のうち 3 または 5 で割り切れる数の合計を計算
result = sum(x for x in range(1, 100) if x % 3 == 0 or x % 5 == 0)
print(result) # 出力: 2318
実行結果の予想:
平均值: 30.0 偶数之和: 30 合計: 16 2318
sum()数値データを処理するための最も基本的なツールの一つであり、リスト内包表記と組み合わせることで複雑な条件付き合計を実現できます。
その他の拡張
Python3 組み込み関数