[Python]リストのN番目に大きい値を取得するには?

python

どうも、ちょげ(@chogetarou)です。

リスト(List)で2番目の最大値を取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

リスト(List)で2番目に大きい値を取得するには、sorted()を使います。

まず、対象のリストをSetに変換します。

sorted()を呼び出し、引数にSetを指定します。

そして、sorted()の結果のインデックス「-N」にアクセスします。

#ls=対象のリスト
new_ls = set(ls)
result = sorted(new_ls)[-N] #N番目に大きい値を取得

上記のsorted()のインデックス「-N」にアクセスすることで、リストのN番目に大きい値を取得できます。

リストをSetに変換しないと、最大値を持つ要素が複数存在する場合に、N番目に大きい値が取得できません。

使用例

nums = [10, 3, 5, 8, 1, 7, 2, 9]

#3番目に大きい値を取得
n = 3
new_ls = set(nums)
result = sorted(new_ls)[-n]

print(result)
出力:
8

コメント

タイトルとURLをコピーしました