・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2024年01月28日に投稿されました。)
PythonでList(リスト)の最小値を取得するにはmin()を使用します。
min()とは、オブジェクトの最小値を取得する関数になります。
オブジェクトの最小値を取得するため、List(リスト)に対してmin()を使用することでリストの最小値の要素を返します。
そして、min()は1次元List(リスト)だけでなく、2次元List(リスト)や3次元List(リスト)のような多次元リストから最小値を返すこともできます。
またパラメータを追加することで最小の基準を変更することができるためもし、List(リスト)の最小数を取得したいと思った場合はmin()を使用するようにしましょう。
今回はPythonのmin()でList(リスト)の最小値を取得する方法について紹介していきます。
List(リスト)の最小値を取得したい場合
min()とは
min()とは、オブジェクトから最小値を取得する関数となります。
そのため、List(リスト)に対して使用することで、リストに格納された要素から最長値の要素を取得するようになります。
min()の書き方
min()の書き方は下記のようになります。
1 | min(オブジェクト, [key= 基準のキー]) |
min()の括弧に必須のパラメータを指定することで使用できます。
また、任意なパラメータを追加して指定することでも使用可能です。
min()のパラメータ
min()のパラメータは下記のようになります。
- オブジェクト:(必須)
最小値を取得したいオブジェクトを指定する - key= 基準のキー:(任意)
最小値の基準のキーを関数で指定する
min()は必須なパラメータとして「オブジェクト」を指定し、任意なパラメータとして「key= 基準のキー」を指定します。
そのため、最大で2つのパラメータを指定して使用します。
min()の返り値
min()の返り値はオブジェクト内にある最小の値となります。
min()でList(リスト)から最小値を取得するサンプルコード
min()でList(リスト)から最小値を取得するサンプルコードをご紹介します。
ここでは下記の3ケースでmin()を使用します。
- List(リスト)に要素が存在する場合
- List(リスト)に要素が存在しない場合
- List(リスト)に最小値の要素が複数存在する場合
List(リスト)に要素が存在する場合
List(リスト)に要素が存在する場合にmin()を使用すると、リスト内の最小値を返します。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print("● min()使用後-1") list1_min = min(list1) print(list1_min) print('● 対象のリスト-2') list2 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list2) print("● min()使用後-2") list2_min = min(list2) print(list2_min) |
実行結果
min()でList(リスト)から最小値を取得しています。
そのため、リストの中では最小値である「2」と「C#」が表示されています。
文字列の場合、min()は先頭文字が早い文字列を最小値として取得するようになります。
List(リスト)に要素が存在しない場合
List(リスト)に要素が存在しない場合にmin()を使用すると、エラーが発生します。
● main.py
1 2 3 4 5 6 7 | print('● 対象のリスト') list1 = [] print(list1) print("● min()使用後") list1_lmin = min(list1) print(list1_min) |
実行結果
min()でList(リスト)から最小値を取得しています。
今回はList(リスト)が空であるため、最小値を取得できずエラーが発生しています。
List(リスト)に最小値の要素が複数存在する場合
List(リスト)に最小値の要素が複数存在する場合にmin()を使用すると、
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2, 2] print(list1) print("● min()使用後-1") list1_min = min(list1) print(list1_min) print('● 対象のリスト-2') list2 = ['JavaScript', 'C#', 'PHP', 'Python', 'C#', 'Java'] print(list2) print("● min()使用後-2") list2_min = min(list2) print(list2_min) |
実行結果
min()でList(リスト)から最小値を取得しています。
そのため、最小値である「2」と「C#」が表示されています。
min()で多次元List(リスト)から最小値を取得するサンプルコード
min()は1次元List(リスト)だけでなく多次元List(リスト)にも使用することができます。
そのため、ここではmin()で多次元List(リスト)から最小値を取得するサンプルコードをご紹介します。
2次元List(リスト)の場合
2次元List(リスト)の場合にmin()を使用します。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | print('● 対象の2次元リスト') list1 = [ [1, 2, 3, 4, 5], [10, 20, 30, 40, 50], [100, 200, 300, 400, 500], [1000, 2000, 3000, 4000, 5000, 0] ] print(list1) print('● min()使用後(1次元リストの各リスト)') for list1_n in list1: list1_n_min = min(list1_n) print(list1_n_min) print('● min()使用後(1次元リスト)') list1_min = min(list1) print(list1_min) print('● min()使用後(2次元リスト)') min_list1=[] for list1_n in list1: list1_n_min = min(list1_n) min_list1.append(list1_n_min) print(min(min_list1)) |
実行結果
min()で2次元List(リスト)から最小値を取得しています。
そのため、各1次元List(リスト)の最小値である「1」、「10」、「100」、「0」が表示されています。
また、1次元List(リスト)の最小値である「[1, 2, 3, 4, 5]」と2次元List(リスト)の最小値である「0」が表示されています。
3次元List(リスト)の場合
3次元List(リスト)の場合にmin()を使用します。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | print('● 対象の3次元リスト') list1 = [ [[10, 20, 30, 40, 50],[100, 200, 300, 400, 500]], [[1000, 2000, 3000,4000, 5000],[10000, 20000, 30000, 40000, 50000], [0]] ] print(list1) print('● min()使用後(1次元リスト)') for list1_n in list1: for list1_nm in list1_n: list1_nm_min = min(list1_nm) print(list1_nm_min) print('● min()使用後(2次元リストの各リスト)') for list1_n in list1: list1_n_min = min(list1_n) print(list1_n_min) min_list1 = [] print('● min()使用後(2次元リスト)') for list1_n in list1: for list1_nm in list1_n: list1_nm_min = min(list1_nm) min_list1.append(list1_nm_min) print(min(min_list1)) min_list1 = [] print('● min()使用後(3次元リスト)') for list1_n in list1: for list1_nm in list1_n: list1_nm_min = min(list1_nm) min_list1.append(list1_nm_min) print(min(min_list1)) |
実行結果
min()で3次元List(リスト)から最小値を取得しています。
そのため、各1次元List(リスト)の最小値である「1」、「10」、「100」、「0」が表示されています。
また、各2次元List(リスト)の最小値である「[10, 20, 30, 40, 50]」と「[0]」、2次元List(リスト)の最小値である「10」と「0」が表示されています。
そして、3次元List(リスト)の最小値である「0」が表示されています。
min()で最小の基準を変更してList(リスト)から最小値を取得する場合
min()で最小の基準を変更してList(リスト)から最小値を取得するには、パラメータに「基準のキー」を指定します。
基準のキーを指定することで、何を最小とするのかの基準を変更することができます。
そのためここでは、min()の最小の基準を5パターン変更してList(リスト)から最小値を取得します。
- 最小の基準をASCIIコードに設定する場合
- 最小の基準をバイト数に設定する場合
- 最小の基準を2進数に設定する場合
- 最小の基準16進数に設定する場合
- 最小の基準を文字数に設定する場合
最小の基準をASCIIコードに設定する場合
最小の基準をASCIIコードに設定するには基準のキーに「ascii」を指定します。
基準のキーに「ascii」を指定することで、ASCIIコードが1番小さい文字列を取得します。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print("● min()使用後-1") list1_min = min(list1, key=ascii) print(list1_min) print('● 対象のリスト-2') list2 = ['JavaScript', 'C#', 'PHP', 'Python', 'Java'] print(list2) print("● min()使用後-2") list2_min = min(list2, key=ascii) print(list2_min) |
実行結果
min()の最小値の基準を変更してList(リスト)から最小値を取得しています。
今回はアスキーコードを最小の基準に設定しているため、「175」と「C#」が表示されています。
最小の基準をバイト数に設定する場合
最小の基準をバイト数に設定するには基準のキーに「bytes」を指定します。
基準のキーに「bytes」を指定することで、バイト数が1番小さい文字列を取得します。
● main.py
1 2 3 4 5 6 7 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print("● min()使用後-1") list1_min = min(list1, key=bytes) print(list1_min) |
実行結果
min()でList(リスト)から最小値を取得しています。
今回はバイト数を最小の基準に設定しているため、「2」が表示されています。
最小の基準を2進数に設定する場合
最小の基準を2進数に設定するには基準のキーに「bin」を指定します。
基準のキーに「bin」を指定することで、2進数が1番小さい文字列を取得します。
● main.py
1 2 3 4 5 6 7 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 20] print(list1) print("● min()使用後-1") list1_min = min(list1, key=bin) print(list1_min) |
実行結果
min()でList(リスト)から最小値を取得しています。
今回は2進数を最小の基準に設定しているため、「258」が表示されています。
最小の基準16進数に設定する場合
最小の基準を16進数に設定するには基準のキーに「hex」を指定します。
● main.py
1 2 3 4 5 6 7 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 20] print(list1) print("● min()使用後-1") list1_min = min(list1, key=hex) print(list1_min) |
実行結果
min()でList(リスト)から最小値を取得しています。
今回は16進数を最小の基準に設定しているため、「258」が表示されています。
最小の基準を文字数に設定する場合
最小の基準を文字数に設定するには基準のキーに「len」を指定します。
● main.py
1 2 3 4 5 6 7 | print('● 対象のリスト') list1 = ['JavaScript', 'Swift', 'PHP', 'Python', 'Java'] print(list1) print("● min()使用後") list1_min = min(list1, key=len) print(list1_min) |
実行結果
min()でList(リスト)から最小値を取得しています。
今回は文字の長さを最小の基準に設定しているため、「PHP」が表示されています。
min()を使用した実際のケース
min()を使用した実際のケースについてご紹介します。
例えば、min()を使用して直近の東京の最低気温と時間帯を取得するコードを作成します。
● index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <!DOCTYPE html> <html lang="ja"> <head> <title>min()でList(リスト)の最小値を取得する</title> <meta charset="utf-8"/> </head> <body> <h1>東京の気温</h1> <table border="1"> <thead> <tr> <th>日付と時間</th> <th>気温(℃)</th> </tr> </thead> <tbody> {% for date, temp in lists: %} <tr> <td style='border: 1px solid #333;'>{{ date }}</td> <td style='border: 1px solid #333;'>{{ temp }}</td> </tr> {% endfor %} </tbody> </table> <form action="/result" method="POST"> <div> <input type="radio" id="lowest" name="most" value="1" checked> <label>最高</label> </div> <div> <input type="radio" id="best" name="most" value="2"> <label>最低</label> </div> <button type="submit">結果</button> </form> </body> </html> |
● result.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!DOCTYPE html> <html lang="ja"> <head> <title>min()でList(リスト)の最小値を取得する</title> <meta charset="utf-8"/> </head> <body> {% if most == '1' %} <h1>最高気温の結果</h1> {% else %} <h1>最低気温の結果</h1> {% endif %} <h2>日付</h2> <p style="font-weight: bold; font-size: 20px;"> {{ date_ret }}</p> <h2>気温</h2> <p style="font-weight: bold; font-size: 20px;"> {{ temp_ret }}</p> </body> </html> |
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | from flask import Flask, render_template, request import requests import json app = Flask(__name__) API_URL = f'https://api.open-meteo.com/v1/forecast?latitude=35.6785&longitude=139.6823&hourly=temperature_2m&timezone=Asia%2FTokyo' headers = {"content-type": "application/json"} response = requests.get(API_URL, headers=headers) data = response.json() hourly = data['hourly'] date_list = hourly['time'] temp_list = hourly['temperature_2m'] @app.route('/') def index(): return render_template('index.html', lists = zip(date_list, temp_list)) @app.route('/result', methods=['POST']) def result(): most_val = request.form.get('most') temp = '' date = '' if most_val == '1': temp_max = max(temp_list) temp_idx = temp_list.index(temp_max) date = date_list[temp_idx] temp = temp_max else: temp_min = min(temp_list) temp_idx = temp_list.index(temp_min) date = date_list[temp_idx] temp = temp_min print(most_val) print(temp) print(date) return render_template('result.html', most = most_val, date_ret = date, temp_ret = temp) if __name__ == '__main__': app.run() |
実行結果
min()で東京の最低気温と時間帯を取得しています。
そのため、「最低」を選択し、「結果」ボタンをクリックすると「2024-01-28T07:00」で「0.8」が表示されています。
Numpyを使用してList(リスト)の最小値を取得する場合
Numpyとは数値の計算を効率的に行うためのPythonの拡張モジュールとなります。
Numpyをインポートすることでモジュールに準備されている関数を使用することができます。
そのため、ここではNumpyにある下記の関数を使用してList(リスト)の最小値を取得します。
- Numpy.min()
- Numpy.nanmin()
Numpy.min()
Numpy.min()とは、オブジェクトの最小値を取得する関数になります。
最小値を取得するのはmin()と変わりはありませんが、非数を含むList(リスト)に対して使用する場合は非数を最小値として取得します。
また、パラメータ追加することで違う形で最小値を取得することができるようになります。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import numpy as np print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2, np.nan] print(list1) print("● Numpy.min()使用後-1") list1_min = np.min(list1) print(list1_min) print('● 対象のリスト-2') list2 = [[-10, -9, -8, -7, -6,], [0, 1, 2, 3, 4]] print(list2) print("● Numpy.min()使用後-2-1") list2_min_1 = np.min(list2) print(list2_min_1) print("● Numpy.min()使用後-2-2") list2_min_2 = np.min(list2, axis=1) print(list2_min_2) |
実行結果
Numpy.min()でList(リスト)から最小値を取得しています。
そのため、1次元List(リスト)では「nan」が最小値として表示されています。
また、2次元List(リスト)の最小値である「-10.0」と各1次元リストの最小値である「[-10 0]」がまとめて表示されています。
Numpy.nanmin()
Numpyのnanmin()とは、オブジェクトの最小値を取得する関数になります。
こちらも最小値を取得するのはmin()と変わりはありませんが、非数を含むList(リスト)に対して使用する場合は非数を無視して最小値を取得します。
また、パラメータ追加することで違う形で最小値を取得することができるようになります。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import numpy as np print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2, np.nan] print(list1) print("● Numpy.nanmin()使用後") print(np.nanmin(list1)) print('● 対象のリスト-2') list2 = [[-10, -9, -8, -7, -6], [0, 1, 2, 3, 4]] print(list2) print("● Numpy.nanmin()使用後-2-1") list2_min_1 = np.nanmin(list2) print(list2_min_1) print("● Numpy.nanmin()使用後-2-2") list2_min_2 = np.nanmin(list2, axis=1) print(list2_min_2) |
実行結果
Numpy.nanmin()でList(リスト)から最小値を取得しています。
そのため、1次元List(リスト)では「2」が最小値として表示されています。
また、2次元List(リスト)の最小値である「-10.0」と各1次元リストの最小値である「[-10 0]」がまとめて表示されています。
List(リスト)から最大値を取得する場合
List(リスト)から最大値を取得するにはmax()を使用します。
max()とはオブジェクトの中から最大値を取得する関数となります。
そのため、今回ご紹介しているmin()とは反対の関数になります。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print("● max()使用後-1") list1_max = max(list1) print(list1_max) print('● 対象のリスト-2') list2 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list2) print("● max()使用後-2") list2_max = max(list2) print(list2_max) |
実行結果
max()でList(リスト)から最大値を取得しています。
そのため、List(リスト)の最大値である「968」と「Python」が表示されています。
もし、max()について詳しく知りたい場合は下記の記事をご参考ください。
まとめ
● min()とは、オブジェクトから最小値を取得する関数である。
● min()は、下記のパラメータを指定して使用する。
・オブジェクト:(必須)
・key= { 基準のキー }:(任意)
● List(リスト)に要素が存在する場合にmin()を使用すると、リスト内の最小値を返す。
● List(リスト)に要素が存在しない場合にmin()を使用すると、エラーが発生する。
● min()は1次元List(リスト)だけでなく、多次元のList(リスト)にも使用することができる。
● min()で最小の基準を変更してList(リスト)から最小値を取得するには、パラメータに「key= {基準のキー}」を指定する。
・基準のキーが「ascii」だとアスキーコードが基準となる
・基準のキーが「bytes」だとバイト数が基準となる
・基準のキーが「bin」だと2進数が基準となる
・基準のキーが「hex」だと16進数が基準となる
・基準のキーが「len」だと文字数が基準となる
● Numpyを使用してList(リスト)の最小値を取得するには下記の関数を使用する。
・Numpy.min()
・Numpy.nanmin()
● List(リスト)から最大値を取得するにはmax()を使用する。