2021年11月27日土曜日

【組み込み関数】max,minによる要素の最大値、最小値

 組み込み関数maxでイテラブルオブジェクトの最大の要素、minでイテラブルオブジェクトの最小の要素が求められる。




1. max,minの書式

 max,minの書式は以下の通り。
イテラブルオブジェクトiterableまたは2つ以上の要素argから最大値、最小値を求める。キーワード引数keyには要素に対する処理の関数を記述する。defaultは要素が空の場合に返す値を記述する。

max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])

min(iterable, *[, key, default])
min(arg1, arg2, *args[, key])

 リストxの中から最大値を求める場合。

x = [-1, -0.5, 1, 2, 3]
print(max(x))

実行結果

3

 リストxの中から最小値を求める場合。

x = [-1, -0.5, 1, 2, 3]
print(min(x))

実行結果

-1

 keyに関数1/xを指定し、その結果の大小に応じて最大値を求める場合。
1/xの値は要素が1の場合に最も大きくなるため1が求まる。

x = [-1, -0.5, 1, 2, 3]
print(max(x, key=lambda x: 1/x))

実行結果

1

 keyに関数1/xを指定し、その結果の大小に応じて最小値を求める場合。
1/xの値は要素が-0.5の場合に最も小さくなるため-0.5が求まる。

x = [-1, -0.5, 1, 2, 3]
print(min(x, key=lambda x: 1/x))

実行結果

-0.5

 要素が空の場合にmax,minを求めるとエラーとなる。

x = []
print(max(x))

実行結果

ValueError: max() arg is an empty sequence

 defaultを指定すれば要素が空の場合にもエラーとならず、設定した値が返される。

x = []
print(max(x, default=0))

実行結果

0


2. 要素が文字列の場合

 要素が文字列の場合にmax,minを求めると、その文字のユニコードポイントに応じて最大値、最小値が決まる。

x = ['a', '1', '+']
print(min(x), max(x)) 

実行結果

+ a

 上の例でユニコードポイントが最も小さいのは'+'、最も大きいのは'a'。

print(ord('a'), ord('1'), ord('+'))

実行結果

97 49 43


3. リファレンス

Python 標準ライブラリ > 組み込み関数 > max(iterable, *[, key, default])
Python 標準ライブラリ > 組み込み関数 > min(iterable, *[, key, default])

使用したバージョン:Python 3.8.8

0 件のコメント:

コメントを投稿