Pythonでリストの最大値を求める方法|max()の使い方を初心者向けに解説

Pythonでリスト内の最大値を求めるには、組み込み関数のmax()を使います。

自分で数値を一つずつ比較する必要はありません。最大値を知りたいリストをmax()に渡すだけで取得できます。

この記事では、max()の基本的な使い方に加え、最大値がある位置の調べ方や、空のリストを扱うときの注意点も解説します。

この記事の内容

max()でリストの最大値を求める

基本的な書き方は次のとおりです。

numbers = [12, 35, 8, 27, 19]

largest = max(numbers)

print(largest)

実行結果は次のようになります。

35

max(numbers)は、numbersに含まれる要素を比較し、その中で最も大きい値を返します。

Pythonでリストの最大値を求めるなら、基本的にはmax()を使うのが最も簡単です。

max()はどのように最大値を見つけるのか

max()は、リスト内の数値を比較して最大値を探します。

考え方としては、最初の数値を一時的な最大値とし、次の数値がそれより大きければ最大値を入れ替えていくイメージです。

先ほどのリストなら、比較は次のように進みます。

  • 最初は12を最大値とする
  • 35の方が大きいため、最大値を35に変更する
  • 残りの8、27、19は35より小さい
  • 最終的に35が返される

実際にこの処理を自分で書く必要はありませんが、仕組みを知っておくと、なぜmax()だけで最大値が求められるのか理解しやすくなります。

小数や負の数が含まれていても使える

max()は、整数だけでなく小数や負の数にも使えます。

numbers = [-8.5, -2.1, -10.0, -4.7]

largest = max(numbers)

print(largest)

実行結果は次のとおりです。

-2.1

負の数では、0に近い数ほど大きな値です。そのため、この例では-2.1が最大値になります。

「最大値=正の数」とは限らない点は、初心者が勘違いしやすいところです。

最大値がある位置を調べる

最大値そのものではなく、リストの何番目にあるのかを調べたい場合は、max()とindex()を組み合わせます。

numbers = [12, 35, 8, 27, 19]

largest = max(numbers)
position = numbers.index(largest)

print(largest)
print(position)

実行結果は次のとおりです。

35
1

Pythonでは、要素の位置を表すインデックスを0から数えます。そのため、2番目にある35のインデックスは1です。

同じ最大値が複数ある場合、index()で取得できるのは最初に見つかった位置です。

たとえば、[10, 30, 20, 30]では最大値は30ですが、取得されるインデックスは最初の30がある1になります。

空のリストではエラーになる

要素が一つもない空のリストにmax()を使うと、ValueErrorが発生します。

numbers = []

print(max(numbers))

最大値は、比較する要素があって初めて決められます。

空のリストには比較対象がないためです。

リストが空になる可能性がある場合は、先に要素が入っているか確認します。

numbers = []

if numbers:
    print(max(numbers))
else:
    print("リストが空です")

Pythonでは、要素のあるリストは条件式でTrue、空のリストはFalseとして扱われます。そのため、if numbers:で空かどうかを簡潔に判定できます。

まとめ

Pythonでリストの最大値を求めるには、組み込み関数のmax()を使います。

largest = max(numbers)

最大値の位置も必要なら、index()を組み合わせます。

position = numbers.index(max(numbers))

ただし、空のリストにmax()を使うとValueErrorが発生します。リストが空になる可能性がある処理では、if numbers:で確認してから使いましょう。

この記事が役に立ったらシェア
  • URLをコピーしました!
この記事の内容