どうも、ちょげ(@chogetarou)です。
リスト(List)の2番目の最大値を取得する方法を紹介します。
方法

リスト(List)の2番目に大きい値を取得する方法は、2つあります。
sorted()
ひとつは、sorted()を使う方法です。
まず、対象のリストをSetに変換します。
sorted()を呼び出し、引数にSetを指定します。
そして、sorted()の結果のインデックス「-2」にアクセスします。
#ls=対象のリスト
new_ls = set(ls)
result = sorted(new_ls)[-2] #2番目に大きい値を取得
上記のsorted()のインデックス「-2」にアクセスすることで、リストの2番目に大きい値を取得できます。
使用例
nums = [10, 3, 5, 8, 4]
new_ls = set(nums)
result = sorted(new_ls)[-2]
print(result)
出力:
8
max()
もうひとつは、max()を使う方法です。
まず、対象のリストから新しいSetを生成します。
次に、Setからremove()を呼び出します。
remove()の引数でmax()を呼び出し、max()の引数にSetを指定します。
そして、max()を呼び出し、引数にSetを指定します。
#ls=対象のリスト
new_ls = set(ls)
new_ls.remove(max(new_ls))
result = max(new_ls) #2番目に大きい値を取得
上記のmax()は、リストの2番目に大きい値を取得します。
使用例
nums = [10, 3, 5, 8, 4]
new_nums = set(nums)
new_nums.remove(max(new_nums))
result = max(new_nums)
print(result)
出力:
8
まとめ
リスト(List)の2番目に大きい値を取得する方法は、次の2つです。
- sorted()を使う方法
new_ls = set(ls)
result = sorted(new_ls)[-2]
- max()を使う方法
new_ls = set(ls)
new_ls.remove(max(new_ls))
result = max(new_ls)
コメント