Pythonで成績の合計や平均、最高点・最低点を求めたいとき、for文で1つずつ計算していませんか?実はPythonには、sum・min・max・round・absといった便利な組み込み関数が用意されていて、1行で同じことができます。
この記事では、これらの基本的な組み込み関数の使い方を、実行結果つきで初心者向けに解説します。
組み込み関数とは?
組み込み関数とは、importをしなくても最初から使えるPython標準の関数です。print()やlen()もその仲間です。自分で関数を作る方法は関数(def)の作り方の記事で解説しているので、あわせて読むと理解が深まります。
sum関数:合計を求める
sum()はリストなどの要素の合計を返します。
scores = [70, 85, 90, 65, 80]
print(sum(scores)) # 390
print(sum(scores) / len(scores)) # 78.0(平均)平均を求めるときは、合計を要素数len()で割ります。
内包表記・ジェネレータ式と組み合わせる
print(sum(x * x for x in range(1, 4))) # 14(1+4+9)このように、リスト内包表記に近い書き方と組み合わせると、短いコードで集計できます。
max・min関数:最大値・最小値を求める
scores = [70, 85, 90, 65, 80]
print(max(scores)) # 90
print(min(scores)) # 65
print(max(10, 3, 7)) # 10(複数の値を直接渡すこともできます)key引数で比べ方を指定する
max()とmin()にはkey引数があり、「何を基準に比べるか」を指定できます。
words = ["apple", "banana", "cherry"]
print(max(words, key=len)) # banana(最も長い文字列。同じ長さなら先頭が優先)
ages = {"taro": 20, "hanako": 25, "jiro": 18}
print(max(ages, key=ages.get)) # hanako(値が最大のキー)辞書の扱いに慣れていない方は辞書(dict)の使い方も確認してみてください。
空のリストに注意:default引数
print(max([], default=0)) # 0
# print(max([])) # ValueError: max() arg is an empty sequence空のリストを渡すとエラーになります。データが空になる可能性があるときは、default引数を指定しておくと安全です。
独学で伸び悩んだら、スクール比較記事も参考にしてください。Pythonが学べるプログラミングスクールの選び方(比較軸とタイプ別おすすめ)で、未経験者向けに整理しています。
round関数:四捨五入(ではない丸め)
print(round(3.14159, 2)) # 3.14(小数第2位まで)
print(round(1234, -2)) # 1200(百の位まで)
print(round(2.5)) # 2
print(round(3.5)) # 4注意したいのは、round(2.5)が3ではなく2になる点です。Pythonのroundは「偶数への丸め(銀行丸め)」を採用しており、ちょうど真ん中の値は最も近い偶数に丸められます。一般的な四捨五入が必要な場面では、decimalモジュールを使う方法があります。
浮動小数点の誤差をroundで整える
total = sum([0.1] * 10)
print(total) # 0.9999999999999999
print(round(total, 2)) # 1.0abs関数:絶対値を求める
print(abs(-5)) # 5
print(abs(-3.5)) # 3.5
# 2つの値の差(どちらが大きいか分からなくてもOK)
a, b = 30, 72
print(abs(a - b)) # 42おまけ:divmod関数で商と余りを同時に求める
q, r = divmod(17, 5)
print(q, r) # 3 2商と余りを一度に取得できるので、時間の計算(秒→分と秒)などで役立ちます。
よくある質問
sumは文字列のリストにも使えますか?
数値用の関数なので、文字列のリストにはエラーになります。文字列の連結にはjoin()を使いましょう。
sortedとmaxはどう使い分けますか?
最大・最小の1件だけが欲しいならmax/min、並べ替えた全体が欲しいならsortedとsortを使います。
もっと効率的にPythonを学びたい人へ
組み込み関数のような基礎は独学でも身につきますが、「エラーの原因が分からない」「次に何を学べばよいか迷う」といった壁にぶつかることも多いものです。マンツーマンで質問できる環境なら、未経験からでも着実にPythonを習得できます。無料カウンセリングを実施しているスクールもあるので、まずは相談してみるのもひとつの方法です。
※本記事には広告(アフィリエイトリンク)を含みます。
Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】![]()
まとめ
- sum()で合計、len()と組み合わせれば平均も1行で求められます
- max()/min()は最大・最小を返し、key引数で比較基準を変えられます
- 空のデータにはdefault引数でエラーを防ぎましょう
- round()は偶数への丸めで、round(2.5)は2になります
- abs()は絶対値、divmod()は商と余りを同時に返します
基本の組み込み関数を使いこなすと、コードが短く読みやすくなります。ぜひ手を動かして試してみてください。
ナノトイラボ 