Python – 辞書内のリスト値の範囲が最大となるキーを表示する方法
辞書に格納されたリストの値の中から、最大値と最小値の差(範囲)が最も大きいキーを表示したい場合があります。このような処理は、シンプルな反復処理(ループ)を使うだけで簡単に実現できます。ここでは、その具体的な実装方法を解説します。
サンプルコード
以下に、その実装例を示します。
my_dict = {"pyt" : [26, 12, 34, 21], "fun" : [41, 27,43, 53, 18], "learning" : [21, 30, 29, 13]}
print("The dictionary is :")
print(my_dict)
max_result = 0
for sub, values in my_dict.items():
max_result = max(max_result, max(values) - min(values))
if max_result == max(values) - min(values):
result = sub
print("The result is :")
print(result)
出力結果
The dictionary is :
{'pyt': [26, 12, 34, 21], 'fun': [41, 27, 43, 53, 18], 'learning': [21, 30, 29, 13]}
The result is :
fun
解説
まず、リストを値として持つ辞書を定義し、コンソールに表示します。
結果を格納するための変数
max_resultを 0 で初期化します。辞書の各要素を
items()メソッドで反復処理しながら、各リストの「最大値 − 最小値」(つまり範囲)を計算し、max関数を使ってこれまでに求めた最大値と比較します。計算した差が現在の最大結果と一致した場合、その時点のキーが結果として記録されます。
すべての要素の走査が終わると、範囲が最も大きかったキーがコンソールに出力されます。
この例では、各リストの範囲は次のようになります。「pyt」は 34 − 12 = 22、「fun」は 53 − 18 = 35、「learning」は 30 − 13 = 17 です。したがって、範囲が最大となる「fun」が結果として表示されます。
-
Pythonでリスト内のすべての値が指定値より小さいかどうかを判定する方法
Pythonによるデータ分析では、1つの数値と複数の値を含むリストを比較する場面によく出会います。例えば、「ある基準値がリスト内のすべての要素よりも小さいかどうか」を確認したいケースです。本記事では、この判定を実現するための2つの方法——forループを使う方法とall()関数を使う方法——を、具体的なサンプルコードとともに解説します。方法1:forループを使うまずは最も基本的なアプローチです。リストを反復処理しながら、指定した値とリスト内の各要素を順番に比較します。すべての要素との比較で条件が成立すれば「yes」を出力し、1つでも条件を満たさない要素があればその時点で処理を中断して「No」を出
-
Pythonでリスト内の最大値を持つ要素を見つける方法
Pythonのリストから最大値を持つ要素を見つけるには、組み込み関数 max() にリストを引数として渡すだけです。max() 関数はリストを先頭から順に走査し、それまでに見つけた最大値を記録しながら末尾まで進み、最終的にその最大値を返します。基本的な使い方以下は、リスト内の最大値を取得するシンプルな例です。my_list = [2, 3, 1, 5, -1] print(max(my_list))出力結果このコードを実行すると、次のように最大値が出力されます。5最大値のインデックス(出現位置)も取得する方法最大値そのものだけでなく、リスト内で最大値が出現するすべての位置(インデックス)を知り