Python
 Computer >> コンピューター >  >> プログラミング >> Python

リスト内の要素の合計を求めるPythonプログラム

この記事では、Pythonを使ってリスト内のすべての要素の合計を求める方法について、具体的なコード例とともに解説します。

問題の定義

リストが入力として与えられたとき、そのリストに含まれるすべての要素の合計値を計算する必要があります。

例えば、[1, 2, 3, 4, 5]というリストが与えられた場合、出力は 15(1+2+3+4+5)となります。

この問題を解くためのアプローチは主に2つあります。1つは組み込み関数を使用する方法、もう1つはブルートフォース(総当たり)方式でループ処理を行う方法です。

方法1:組み込み関数 sum() を使う

Pythonには標準で用意されている組み込み関数 sum() があり、これを使えば1行でリストの合計を求めることができます。最もシンプルかつ効率的な方法です。

サンプルコード

# main
arr = [1, 2, 3, 4, 5]
ans = sum(arr)
print('配列の合計は ', ans)

実行結果

15

このプログラムでは、変数と関数はすべてグローバルスコープで宣言されており、以下のように処理されます。

リスト内の要素の合計を求めるPythonプログラム

sum() 関数は内部的にC言語レベルで最適化されているため、大きなリストに対しても高速に動作します。また、第二引数に初期値を指定することも可能です(例:sum(arr, 10))。

方法2:ブルートフォース方式(forループ)を使う

次に、組み込み関数に頼らず、forループを使って各要素を順番に加算していく方法を見ていきましょう。アルゴリズムの基本的な考え方を学ぶのに適したアプローチです。

サンプルコード

total = 0
# リストを作成
list1 = [1, 2, 3, 4, 5]
for ele in range(0, len(list1)):
    total = total + list1[ele]
# main
print("指定されたリスト内の全要素の合計: ", total)

実行結果

15

このプログラムでも、変数と関数はすべてグローバルスコープで宣言されています。

リスト内の要素の合計を求めるPythonプログラム

この方法では、まず合計値を格納する変数 total を0で初期化し、リストの長さ分だけループを回しながら各要素を順次加算していきます。

なお、よりPythonicな書き方としては、インデックスを使わずに直接要素を取り出す以下のような記述もおすすめです。

total = 0
list1 = [1, 2, 3, 4, 5]
for ele in list1:
    total += ele
print("合計:", total)  # 15

どちらの方法を選ぶべきか

  • sum()関数: コードが簡潔で可読性が高く、パフォーマンスにも優れています。実務ではこちらが推奨されます。
  • ループ処理: 処理の流れを明示的に制御できるため、学習目的や条件付きの集計が必要な場合に有効です。

まとめ

この記事では、Pythonでリスト内の要素の合計を求める2つの方法を紹介しました。手軽に使える組み込み関数 sum() の方法と、基本を理解するのに役立つforループによる方法の両方を押さえておくことで、状況に応じて柔軟に対応できるようになります。

  1. Pythonで二分木の全ノードの値の合計を求めるプログラム

    二分木(バイナリツリー)にいくつかの値が格納されている場合、木に含まれるすべての値の合計を求めたいことがあります。例えば、次のような二分木が入力として与えられたとします。この場合、出力は 14 になります(2 + 4 + 3 + 5 = 14)。解決のアプローチこの問題を解くには、再帰を使って各ノードを順番に訪問し、値を足し合わせていきます。具体的な手順は以下の通りです。関数 recurse() を定義します。引数としてノードを受け取ります。変数 val に現在のノードの値を代入します。ノードの左の子が存在する場合は、val に左部分木の再帰結果を加算します。ノードの右の子が存在する場合は、v

  2. Pythonでリストの累積和(累積合計)を求める方法

    この記事では、リストの累積和(累積合計)を求める問題の解決策について詳しく解説します。問題文あるリストが与えられたとき、各要素までの累積和を格納した新しいリストを作成する必要があります。例えば、[10, 20, 30, 40, 50] というリストが与えられた場合、出力は [10, 30, 60, 100, 150] となります。これは、各位置でそれ以前の要素をすべて足し合わせた値です。実装例それでは、実際の実装を見ていきましょう。# 累積和を求める関数 def Cumulative(l): new = [] cumsum = 0 for element in l: