1. はじめに
Pythonでデータの中から最大値や最小値を簡単に取得したいときに便利なのが、max()
と min()
関数です。リストやタプル、複数の数値の中から一番大きい値や小さい値を見つける処理は、データ分析や条件分岐など、さまざまな場面で活用されます。
この記事では、Python|最大値・最小値を取得する:max(), min() の使い方を、基本から応用まで初心者にも分かりやすく解説します。コード例と実行結果付きで丁寧に紹介しているので、Python学習中の方や実務で活用したい方にもおすすめの内容です。
2. max(), min() の基本的な使い方
max()関数で最大値を取得する
max()
は、複数の値またはイテラブル(リスト・タプルなど)から最大値を取得します。
# リストの中で最大の値を取得
numbers = [5, 9, 2, 8, 1]
maximum = max(numbers)
print("最大値:", maximum)
実行結果:
最大値: 9
min()関数で最小値を取得する
min()
も同様に、複数の値やイテラブルから最小値を取得します。
# タプルから最小値を取得
values = (3, 7, 1, 4)
minimum = min(values)
print("最小値:", minimum)
実行結果:
最小値: 1
複数の引数に対応
max()
や min()
は、複数の引数をそのまま渡すことも可能です。
print(max(10, 25, 3, 18))
print(min(10, 25, 3, 18))
実行結果:
25
3
3. よくある使い方・応用例
リスト内の辞書から最大・最小を取得する
オブジェクトや辞書リストから、特定のキーの値に基づいて最大・最小を取得することもできます。key
引数を使って、比較基準を指定します。
# 学生のテスト結果から最高得点の学生を取得
students = [
{"name": "Alice", "score": 88},
{"name": "Bob", "score": 72},
{"name": "Charlie", "score": 91}
]
top_student = max(students, key=lambda x: x["score"])
print("最高得点者:", top_student["name"])
実行結果:
最高得点者: Charlie
文字列の最小・最大を取得する
max()
と min()
は文字列にも使えます。文字列の中で、Unicode順(辞書順)に評価されます。
word = "python"
print("最大文字:", max(word))
print("最小文字:", min(word))
実行結果:
最大文字: y
最小文字: h
条件に応じて使い分ける:max vs sorted
最大値だけでなく、上位N件を取得したい場合は sorted()
の併用が便利です。
scores = [45, 78, 99, 82, 67]
top3 = sorted(scores, reverse=True)[:3]
print("上位3件:", top3)
実行結果:
上位3件: [99, 82, 78]
4. 注意点・エラー対策
空のリストを渡すとエラーになる
イテラブルが空の場合、ValueError
となるので注意が必要です。
# 空リストに対してmax()を使うとエラー
data = []
print(max(data)) # ValueError: max() arg is an empty sequence
対処法:
if
文などで空かどうかを確認してから使いましょう。
if data:
print(max(data))
else:
print("リストが空です")
実行結果:
リストが空です
データ型の混在に注意
異なる型(数値と文字列など)を混ぜて max()
や min()
を使うと TypeError
になります。
# 型の違いによるエラー
print(max([3, "a", 5])) # TypeError
リストの中身の型が揃っていることを確認してから使いましょう。
5. まとめ
max()
とmin()
は、リストや複数の値から最大・最小を簡単に取得できる便利な関数- 辞書や文字列にも使えるほか、
key
引数で比較方法を指定可能 - 空リストや型の違いに注意して使うことが重要
実務でも、売上の最大日を取得したり、スコアの上位ユーザーを特定したりと、非常に頻繁に登場する処理です。
データ処理を効率よく行うためにも、max() / min() の習得は必須と言えるでしょう。
学習のコツとしては、まずはリストなど基本的な型で慣れてから、key
引数を活用した辞書リストの操作などにステップアップしていくのがおすすめです。