はじめに
今回はPythonでリストの総和を求める
なに?組み込み関数のsum()
を使えば良いって?
確かにそうだが、せっかくなので勉強のために自前で実装してみよう
実装
準備
以下のようなリスト
を考える。今回はこの総和を求めたい。
1 | A = [2, 3, 5] |
組み込み関数sum
これが正しい方法
1 | sum(A) |
方法1. for文
これが最も愚直な方法。
sum
が存在しない言語であればこれが良い実装だろう。
1 | def my_sum1(lst): |
方法2. reduce
かなり無駄な感じがしてきた。
高階関数reduce
と自作の足し算をする関数add
を使う。
reduce
は第一引数に関数、第二引数にリストを与えることで、
リストに対して、関数の処理を繰り返して適用することができる。
1 | from functools import reduce |
方法3. reduce + lambda
勝手に実装にしておいて何だが、わざわざ関数add
を宣言したくない。
そんな時はlambda
の出番だ。
1 | from functools import reduce |
方法4. 再帰
再帰を使っても表現が可能だ。
先頭の要素と、残りの要素の輪を求めていく。
1 | def my_sum4(lst): |
まとめ
sum
だと極端かもしれないが、標準で実装済みの処理を自分でも書いてみると良い勉強になる。
記事情報
- 投稿日:2020年3月16日
- 最終更新日:2020年3月16日