どうも、ちょげ(@chogetarou)です。
Array.arrayの2番目の最小値を取得する方法を紹介します。
方法

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