リストの最大値・最小値を求める【Python】

pythonの最大値・最小値の記事のアイキャッチPython

最大値

最大値を求めるには組み込み関数であるmax()を使う。

基本形はこれ

nums = [32, 5, 102]
print(max(nums))
# 102

print(max(12, 32, 61))
# 61

リストを与えるとそのリストのうち最大の要素を返してくれる。
リストではなく数値などを2個以上与えるとそのうち最大のものを返してくれる。

最小値

最小値を求めるには組み込み関数であるmin()を使う。

基本形はこれ。

nums = [32, 5, 102]
print(min(nums))
# 5

print(min(12, 32, 61))
# 12

リストを与えるとそのリストのうち最小の要素を返してくれる。
リストではなく数値などを2個以上与えるとそのうち最小のものを返してくれる。

key引数

key引数には関数を与えることができる。
key引数を使うと与えた関数を実行した後の結果で最大値のものを返してくれる。

最大値といっても様々な場面で使われる。
例えば絶対値で最大のものを返して欲しければリストにabs()を適用した後にmax()を適用する必要があるが、key引数を使えばとても簡単にできる。

nums = [-52, 33, -3, 6]
print(max(nums))
# 32
print(max(nums, key=abs))
# -52

def mod4_of_abs(x):
  return abs(x) % 4

print(max(nums, key=mod4_of_abs))
# -3
# [-52, 33, -3, 6] => [52, 33, 3, 6] => [0, 1, 3, 2]

用意されている関数や自分で作成した関数も使うことができる。

また無名関数を使うとさらに簡潔に書ける場合があるよ。
以下はどちらも同じこと行なっているが、無名関数を使えばわざわざ関数を定義する必要もない。

def mod4_of_abs(x):
  return abs(x) % 4

print(max(nums, key=mod4_of_abs))
# -3
# [-52, 33, -3, 6] => [52, 33, 3, 6] => [0, 1, 3, 2]

print(max(nums, key=lambda x: abs(x) % 4))
# -3

コメント