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

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

リストの数値を自分で並べ替えたり、一つずつ比較したりする必要はありません。最小値を調べたいリストをmin()に渡すだけで取得できます。

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

この記事の内容

min()でリストの最小値を求める

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

numbers = [12, 5, 28, 9, 17]

smallest = min(numbers)

print(smallest)

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

5

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

Pythonでリストの最小値を求めるなら、min()を使うのが最も簡単です。

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

min()は、リストの中身を比較しながら最も小さい値を探します。

考え方としては、最初の数値を一時的な最小値とし、それより小さい数値が見つかったら入れ替えていくイメージです。

先ほどのリストでは、次のように比較されます。

  • 最初は12を最小値とする
  • 5の方が小さいため、最小値を5に変更する
  • 残りの28、9、17は5より大きい
  • 最終的に5が返される

実際のプログラムでは、この比較処理を自分で書く必要はありません。min()がリスト全体を確認して結果を返してくれます。

小数や負の数にも使える

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

numbers = [-3.5, -8.2, -1.4, -6.0]

smallest = min(numbers)

print(smallest)

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

-8.2

負の数では、0から離れている数の方が小さくなります。そのため、この例では-8.2が最小値です。

「数字の見た目が大きいから-8.2の方が大きい」と考えないように注意しましょう。数直線で考えると、左側にある数ほど小さい値です。

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

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

numbers = [12, 5, 28, 9, 17]

smallest = min(numbers)
position = numbers.index(smallest)

print(smallest)
print(position)

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

5
1

Pythonでは、要素の位置を表すインデックスを0から数えます。5はリストの2番目にありますが、インデックスは1です。

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

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

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

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

numbers = []

print(min(numbers))

空のリストには比較できる要素がないため、最小値を決められません。

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

numbers = []

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

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

まとめ

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

smallest = min(numbers)

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

position = numbers.index(min(numbers))

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

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