【Python】min()でオブジェクト内の最小値を取得する!
Pythonのmin()を使用すると、オブジェクト内の最小値を取得することができます。
min()とは指定したオブジェクト内の最小のものを返す関数であり、リストやタプルなどのイテレータ内の要素や、文字列内の文字の最小値を取得する際に使用します。
また、min()のパラメータである基準キーを指定すると、最小の基準を変更して最小値を取得することができます。
今回はPythonのmin()でオブジェクト内の最小値を取得する方法について以下の内容で解説していきます。
⚫︎ イテレータから最小値を取得する場合
⚫︎ 文字列の文字から最小値を取得する場合
⚫︎ 重複する最小値を取得する場合
⚫︎ 最小の基準をASCIIコードに設定する場合
⚫︎ 最小の基準をバイトに設定する場合
⚫︎ 最小の基準を2進数に設定する場合
⚫︎ 最小の基準を16進数に設定する場合
目次
min()とは
min()とは、指定したいオブジェクトの最小値を返す関数となります。
min()の書き方
min()の書き方は下記となります。
1 |
min(オブジェクト, [key= 基準のキー]) |
min()のパラメータ
⚫︎ オブジェクト:
最小値を取得したいオブジェクトを指定する
⚫︎ 基準のキー:
最小値の基準のキーを関数で指定する
min()のパラメータにオブジェクトを指定することで、指定したオブジェクト内の最小値を返します。
また、基準のキーも指定すると、最小の基準を変更して最小値を返すようになります。
オブジェクト内の最小値を取得するサンプルコード
オブジェクト内の最小値を取得するサンプルコードを紹介します。
イテレータから最小値を取得する場合
リストやタプルなどのようなイテレータ内の要素から最小値を取得してみます。
まずは、リストやタプル内の要素から最小値の取得を行ってみます。
リストやタプルの場合
1 2 3 4 5 6 7 8 9 10 11 12 13 |
sample_list = [1, 2, 3, 4, 5, 6, 7, 8] print(sample_list) print('・min()でリスト内の要素の最小値を取得する') sample_list_min = min(sample_list) print(sample_list_min) sample_tuple = ('value1', 'value2', 'value3', 'value4','value5', 'value6') print(sample_tuple) print('・min()でタプル内の要素の最小値を取得する') sample_tuple_min = min(sample_tuple) print(sample_tuple_min) |
出力結果
[1, 2, 3, 4, 5, 6, 7, 8]
・min()でリスト内の要素の最小値を取得する
1
(‘value1’, ‘value2’, ‘value3’, ‘value4′,’value5’, ‘value6’)
・min()でタプル内の要素の最小値を取得する
value1
min()によってリストやタプル内の要素の最小値を取得しています。
また、要素が数値の場合は数値が一番小さい要素を取得していますが、要素が文字列の場合は、文字をユニコードに直した時の一番小さい値を返すようになります。
続いて辞書内のキーや値から最小値を取得してみます。
辞書の場合
1 2 3 4 5 6 7 8 9 10 11 12 |
sample_dict = {1:'value15', 2: 'value22', 3:'value13', 4:'value35', 5: 'value1', 6: 'value0'} print(sample_dict) print('・min()で辞書のキーの最小値を取得する') sample_dictKeys_min = min(sample_dict.keys()) print(sample_dictKeys_min) print('・min()で辞書の値の最小値を取得する') sample_dictValues_min = min(sample_dict.values()) print(sample_dictValues_min) print('・min()で辞書のキーと値の最小値を取得する') sample_dictItems_min = min(sample_dict.items()) print(sample_dictItems_min) |
出力結果
{1: ‘value15’, 2: ‘value22’, 3: ‘value13’, 4: ‘value35’, 5: ‘value1’, 6: ‘value0’}
・min()で辞書のキーの最小値を取得する
1
・min()で辞書の値の最小値を取得する
value0
・min()で辞書のキーと値の最小値を取得する
(1, ‘value15’)
min()によって辞書内のキーや値の最小値を取得しています。
また、keys()やvalues()に対してmin()を使用すると最小値を取得しますが、items()に対してmin()を使用するとキーが最小値であるキーと値のセットを取得するようになります。
最後にset型とfrozenset型内の値の最小値を取得してみます。
set型やfrozenset型の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 |
sample_set = {120000, 5623, -57, 78, 69, 634, 100, 6747} print(sample_set) print('・min()でset型の値の最小値を取得する') sample_set_min = min(sample_set) print(sample_set_min) sample_fset = frozenset({'value1', 'value2', 'value3', 'value4','value5', 'value6'}) print(sample_fset) print('・min()でfrozenset型の値の最小値を取得する') sample_fset_min = min(sample_fset) print(sample_fset_min) |
出力結果
{120000, 100, 69, -57, 78, 5623, 634, 6747}
・min()でset型の値の最小値を取得する
-57
frozenset({‘value3’, ‘value5’, ‘value4’, ‘value2’, ‘value6’, ‘value1’})
・min()でfrozenset型の値の最小値を取得する
value1
min()によってset型やfrozenset型内の値の最小値を取得しています。
文字列の文字から最小値を取得する場合
min()で文字列の文字から最小値の取得を行ってみます。
例
1 2 3 4 5 6 |
sample_str = 'この文字の中から最小値を取得する' print(sample_str) print('・min()で文字列の文字の最小値を取得する') sample_str_min = min(sample_str) print('最小値である文字は', sample_str_min) |
出力結果
この文字の中から最小値を取得する
・min()で文字列の文字の最小値を取得する
最小値である文字は か
min()によって文字列の文字から最小値を取得しています。
ここでいう、「文字の最小値」というのも文字をユニコードに直した時の一番小さい値を返すようになります。
最小値が重複している場合
最小値が重複している場合、min()は最初に現れたものを返すようになります。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
sample_list1 = [1234, 5456, 12, 678, 689, 69862, 199, 457, 12] print(sample_list1) sample_list2 = ['あ', 'い', 'う', 'え', 'お', 'あ'] print(sample_list2) print('・最小値が重複している場合にmin()で取得') sample_list1_min = min(sample_list1) sample_list1_min_idex = sample_list1.index(min(sample_list1)) print(sample_list1_min, sample_list1_min_idex) sample_list2_min = min(sample_list2) sample_list2_min_idex = sample_list2.index(min(sample_list2)) print(sample_list2_min, sample_list2_min_idex) |
出力結果
[1234, 5456, 12, 678, 689, 69862, 199, 457, 12]
[‘あ’, ‘い’, ‘う’, ‘え’, ‘お’, ‘あ’]
・最小値が重複している場合にmin()で取得
12 2
あ 0
要素内の最小値は「12」と「あ」であり、index()によって要素のインデックスを取得した結果、「2(3番目)」と「0(番目)」を取得しています。
最小の基準を変更して最小値を取得する方法
先ほどまでは、min()で数値の最小値や文字の最小値を取得していましたが、パラメーターである基準のキーを指定することで、最小の基準を変更して最小値を取得することができます。
基本的な基準はmax()のページで紹介していますので、こちらのページでは応用的な基準を紹介していきます。
最小の基準をASCIIコードに設定する場合
最小の基準をASCIIコードに設定する場合はmin()のパラメータである基準のキーにasciiを指定します。
例
1 2 3 4 5 6 |
sample_list = ['134r', '245667', '45673', '598s33444','234565', -789474] print(sample_list) print('・min()で最小の基準をASCIIコードに設定する') sample_list_min = min(sample_list, key = ascii) print(sample_list_min) |
出力結果
[‘134r’, ‘245667’, ‘45673’, ‘598s33444’, ‘234565’, -789474]
・min()で最小の基準をASCIIコードに設定する
134r
min()の基準のキーにasciiを指定することで、ASCIIコードが最小値である値を返しています。
最小の基準をバイトに設定する場合
最小の基準を絶対値に設定する場合はmin()のパラメータである基準のキーにbytes指定します。
例
1 2 3 4 5 6 |
sample_list = [245667, 45674, 59833444, 234565, 45656] print(sample_list) print('・min()で最小の基準をバイトに設定する') sample_list_min = min(sample_list, key = bytes) print(sample_list_min) |
出力結果
[245667, 45674, 59833444, 234565, 45656]
・min()で最小の基準をバイトに設定する
45656
min()の基準のキーにbytesを指定することで、バイトが最小値である要素を返しています。
最小の基準を2進数に設定する場合
最小の基準を2進数に設定する場合はmin()のパラメータである基準のキーにbin指定します。
例
1 2 3 4 5 6 |
sample_list = [44, 33, 88, 66, 55] print(sample_list) print('・min()で最小の基準を2進数に設定する') sample_list_min = min(sample_list, key = bin) print(sample_list_min) |
出力結果
[245667, 45674, 59833444, 234565, 45656]
・min()で最小の基準をバイトに設定する
45656
min()の基準のキーにbinを指定することで、2進数でが最小値である要素を返しています。
最小の基準を16進数に設定する場合
最小の基準を16進数に設定する場合はmin()のパラメータである基準のキーにhex指定します。
例
1 2 3 4 5 6 |
sample_list = [444, 333, 888, 666, 555] print(sample_list) print('・min()で最小の基準を16進数に設定する') sample_list_min = min(sample_list, key = hex) print(sample_list_min) |
出力結果
[444, 333, 888, 666, 555]
・min()で最小の基準を16進数に設定する
333
min()の基準のキーにhexを指定することで、16進数が最小値である要素を返しています。
今回のポイント
min()でオブジェクト内の最小値を取得
⚫︎ min()はオブジェクト内の最小値を返す関数である
⚫︎ min()はリストやタプルなどのイテレータ内から最小値を取得することができる
⚫︎ min()は文字列内から最小値を取得することもできる
⚫︎ 重複する最小値を取得する場合、min()は最初に現れたものを返す
⚫︎ 最小の基準をASCIIコードに設定する場合はmin()のパラメータである基準のキーにasciiを指定する
⚫︎ 最小の基準をバイトに設定する場合はmin()のパラメータである基準のキーにbytesを指定する
⚫︎ 最小の基準を2進数に設定する場合はmin()のパラメータである基準のキーにbinを指定する
⚫︎ 最小の基準を16進数に設定する場合はmin()のパラメータである基準のキーにhexを指定する
関連記事
Pythonのmax()でオブジェクト内の最大値を取得する方法についてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。