Python – リストの要素が別のリストの最小値・最大値の範囲内にあるかどうかを判定する方法
あるリストの要素が、別のリストの最小値から最大値までの範囲内に収まっているかどうかを確認したい場面はよくあります。本記事では、リストの要素を順に走査し、それぞれが基準となるリストの最小値以上・最大値以下であるかをチェックする方法を解説します。
実装例
以下に具体的なサンプルコードを示します。
my_list = [5, 6, 4, 7, 8, 13, 15]
print("リストの内容:")
print(my_list)
# 基準となるリストの最小値と最大値を取得
min_val = min(my_list)
max_val = max(my_list)
range_list = [4, 7, 10, 6]
my_result = True
for elem in range_list:
# 範囲外の要素が見つかったらフラグをFalseにしてループを抜ける
if elem < min_val or elem > max_val:
my_result = False
break
if my_result:
print("すべての要素は最小値〜最大値の範囲内にあります")
else:
print("範囲外の要素が含まれています")出力結果
リストの内容: [5, 6, 4, 7, 8, 13, 15] すべての要素は最小値〜最大値の範囲内にあります
コードの解説
まず、基準となるリストを定義し、コンソールに表示します。
組み込み関数 min() と max() を使って、基準リストの最小値と最大値を取得します。
判定対象となる整数のリストを別途定義します。
結果を格納するための変数を True で初期化します。
判定対象リストの各要素を順に取り出し、最小値未満または最大値より大きい要素が見つかった場合は、結果変数を False に設定して break 文でループを脱出します。
最後に結果変数の値を確認し、その内容に応じたメッセージをコンソールに出力します。
all() 関数を使った簡潔な書き方
同じ処理は、組み込み関数 all() を使うことでより簡潔に記述できます。
my_result = all(min_val <= elem <= max_val for elem in range_list)
print("すべての要素は最小値〜最大値の範囲内にあります" if my_result else "範囲外の要素が含まれています")all() 関数は、イテラブル内のすべての要素が条件を満たす場合に True を返します。さらに、Python の連鎖比較(chained comparison)を利用すれば、「最小値 <= 要素 <= 最大値」という条件を数学的な記法のように直感的に表現でき、明示的なループや break 文が不要になるため、コードの可読性が大きく向上します。
-
【Python】リスト内のすべての要素が同じ値かどうかを確認する3つの方法
リスト内の要素がすべて同じ値であるかどうかを確認したい場面はよくあります。たとえば、データの整合性チェックやバリデーション処理などで必要になることがあります。Pythonでは、このような判定をいくつかの方法で実装できます。本記事では、代表的な3つのアプローチをサンプルコードとともにわかりやすく解説します。1. forループを使う方法まずリストの先頭要素を取得し、forループで各要素を順番に先頭要素と比較していきます。途中で一致しない要素が見つかった時点でループを抜け、結果をFalseにするのがポイントです。サンプルコードList = [Mon, Mon, Mon, Mon] result =
-
PythonでリストからN個の最大要素を取得する方法
整数のリストが与えられたとき、その中からN個の大きな要素を取り出して新しいリストとして返すのが、ここでの課題です。本記事では、基本的なループ処理による方法から、Python標準ライブラリを活用した効率的な方法まで、サンプルコードとともに解説します。 例 入力 : [40, 5, 10, 20, 9] N = 2 出力 : [40, 20] アルゴリズム 整数のリストと、取得する要素数Nを受け取ります。 N回のループを実行します。 各ループでリスト内の最大値を探し、新しいリストに格納すると同時に元のリストから削除します。 実装コード def Nnumberele(list1, N):