Python

Pythonで最大値や最小値を取得する方法

By 2021年3月15日No Comments

この記事ではPythonのmax( )関数とmin( )関数を使って最大値や最小値を取得する方法について解説します。

max( )関数とmin( )関数はPythonの組み込み関数の1つでイテラブルオブジェクトと呼ばれるリストやタプル、辞書、セット、文字列などの複数の要素を持つオブジェクト内で最大値と最小値を持つ要素の値を取得することができます。

max( )関数とmin( )関数を使って最大値と最小値を取得する方法

max( )関数とmin( )関数を使って様々なオブジェクト内の最大値と最小値の要素の値を取得していきます。構文は下記になります。

max(イテラブルオブジェクト)

min(イテラブルオブジェクト)

タプルのオブジェクト内の最大値と最小値を持つ要素の値をmax( )関数とmin( )関数で取得します。

number = (1, 2, 3, 4)
print('最大値:', max(number), '最小値:', min(number))

結果:

最大値: 4 最小値: 1

リストの最大値と最小値を取得します。

number = [1, 2, 3, 4]
print('最大値:', max(number), '最小値:', min(number))

結果:

最大値: 4 最小値: 1

セット型のオブジェクト内の最大値と最小値を取得します。

number = {1, 2, 3, 4}
print('最大値:', max(number), '最小値:', min(number))

結果:

最大値: 4 最小値: 1

range( )内の最大値と最小値の要素を取得します。

number = range(1, 5)
print('最大値:', max(number), '最小値:', min(number))

結果:

最大値: 4 最小値: 1

オブジェクト内が文字列の最大値と最小値の要素を取得します。

eigo = 'ABCD'
print('最大値:', max(eigo), '最小値:', min(eigo))

結果:

最大値: D 最小値: A

文字列はアルファベット順に並べてa〜zに向けて値が大きくなります。大文字と小文字が混ざった場合は小文字の方がより最大値となり大文字が最小値になります。

eigo = 'AaBbCcDd'
print('最大値:', max(eigo), '最小値:', min(eigo))

結果:

最大値: d 最小値: A

小文字の方が最大値となり大文字が最小値になりました。これはユニコード順として順番が決められています。

moji = ['a', 'あ', 'ア', 'A']
print('最大値:', max(moji), '最小値:', min(moji))

結果:

最大値: ア 最小値: A

文字列が上記で最大値から順番に「カタカナ→ひらがな→小文字アルファベット→大文字」のユニコード順になっているのが分かります。

辞書型のオブジェクト内の最大値と最小値の要素を取得します。

dict = {'A':1, 'B':2, 'C':3, 'D':4}
print('最大値:', max(dict), '最小値:', min(dict))

結果:

最大値: D 最小値: A

上記は辞書内のキーを基準に取得しています。辞書内のバリューを基準に最大値と最小値を取得したい場合は変数の後に「.values( )」を付け加えます。

dict = {'A':1, 'B':2, 'C':3, 'D':4}
print('最大値:', max(dict.values()), '最小値:', min(dict.values()))

結果

最大値: 4 最小値: 1

辞書オブジェクト内のバリューで最大値と最小値の要素が取得する事ができました。

max( )とmin( )の引数にキーを指定して最大値と最小値の基準を変更する方法

max( )とmin( )関数の第2引数にをキー関数を指定すると最大値と最小値の基準を変更する事ができます。構文は下記になります。

max(イテラブルオブジェクト, key=キー関数)

min(イテラブルオブジェクト, key=キー関数)

引数キーにlen関数を指定するとオブジェクト内の各要素の長さを基準に要素を取得するように変更する事ができます。

city = ['Tokyo', 'tokyo', 'Osaka', 'osaka', 'Nagoya', 'nagoya']
print('最大値:', max(city, key=len), '最小値:',  min(city, key=len))

結果:

最大値: Nagoya 最小値: Tokyo

最大値は6文字の「Nagoya」が取得されました。最小値の5文字は「Osaka」と「Tokyo」ですが、アルファベット順でより最小の「Tokyo」の要素が取得されました。 

引数キーの指定をstr.lower関数を指定すると文字列を全て小文字に変換して比較する事ができます。

city = ['Tokyo', 'tokyo', 'Osaka', 'osaka', 'Nagoya', 'nagoya']
print('最大値:', max(city, key=str.lower),  '最小値:', min(city, key=str.lower))

結果:

最大値: Tokyo 最小値: Nagoya

すべて小文字にして比較したので最大値が「Tokyo」と最小値が「Nagoya」となりました。 

文字列になっている数字と整数値が混在しているときには数字も整数値に変換して最大値と最小値を取得する事ができるint関数を引数キーに指定します。

number = ["1", 2, "3", 4]
print('最大値:', max(number, key=int), '最小値:', min(number, key=int))

結果:

最大値: 4 最小値: 1

すべて整数に変換してから要素を取得する事ができました。このように第2引数にキーを指定する事でオブジェクト内の要素の最大値と最小値の要素の基準の変更をする事ができます。

まとめ

この記事ではPythonのmax( )関数とmin( )関数を使って最大値や最小値を取得する方法を解説しました。Pythonのmax関数とmin関数の引数にキーを指定することで最大値や最小値を取得する基準値を変更してより様々な順番を指定して要素を取得する事ができました。以上Pythonのmax( )関数とmin( )関数を使って要素の最大値と最小値を取得する方法でした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL