【Python】リスト内のすべての値が指定した値より大きいかどうかを判定する方法
リストと基準値が与えられたとき、リスト内のすべての要素がその基準値より大きいかどうかを判定するプログラムです。条件を満たしていれば「Yes」、一つでも基準値以下の要素が存在すれば「No」を出力します。
実行例
入力 : A=[10, 20, 30, 40, 50] 基準値 = 20 出力 : No 入力 : A=[10, 20, 30, 40, 50] 基準値 = 5 出力 : Yes
アルゴリズム
ステップ1: ユーザーから入力を受け取り、リストを作成する。 ステップ2: 基準値(チェック用の値)を入力する。 ステップ3: forループでリストを走査する。 ステップ3.1: 各要素を基準値と比較する。 ステップ4: 結果を出力して終了する。
サンプルコード
def checknumber(A, val):
# リストを走査する
for i in A:
if val >= i:
return False
return True
# ドライバーコード
A = list()
n1 = int(input("リストのサイズを入力してください ::"))
print("リストの要素を入力してください ::")
for i in range(int(n1)):
k = int(input())
A.append(k)
val = int(input("基準値を入力してください"))
if checknumber(A, val):
print("すべての値は", val, "より大きいです")
else:
print("値は", val, "より大きくありません")
実行結果
リストのサイズを入力してください ::5 リストの要素を入力してください :: 10 20 30 40 50 基準値を入力してください10 値は 10 より大きくありません リストのサイズを入力してください ::6 リストの要素を入力してください :: 10 20 30 40 50 60 基準値を入力してください9 すべての値は 9 より大きいです
コードの解説
関数 checknumber() では、forループを使ってリストの各要素を順番に取り出し、基準値 val 以上の要素が見つかった時点で即座に False を返します。最後まで該当する要素が見つからなければ、すべての値が基準値より大きいことになるため True を返します。
この仕組みにより、不要な比較を途中で打ち切ることができ、効率的に判定を行えます。
all() 関数を使ったよりPython的な書き方
Pythonでは組み込み関数 all() を使うことで、同じ処理をわずか1行で簡潔に記述できます。
def checknumber(A, val):
return all(i > val for i in A)
all() はイテラブル内のすべての要素が真である場合に True を返す関数です。ジェネレータ式と組み合わせることで、可読性が高くメモリ効率の良いコードになります。実務でもこちらの書き方が推奨されることが多いので、ぜひ覚えておきましょう。
-
Pythonで二分木のすべてのノードの値が同じかどうかをチェックするプログラム
問題の概要二分木が与えられたとき、その木に含まれるすべてのノードが同じ値を持っているかどうかを判定することを考えます。例えば、次のような二分木が入力として与えられた場合、すべてのノードが同じ値を持っているため、出力は True になります。解決のアプローチこの問題は、再帰を使ってシンプルに解くことができます。以下の手順に従います。solve() 関数を定義します。この関数は root(現在のノード)と val(比較対象の値)を引数として受け取ります。root が null(None)の場合は、True を返します。空の部分木は条件を満たしているとみなせるためです。val が未定義の場合は、ro
-
Pythonでリスト内のすべての数値を乗算するプログラムの書き方
この記事では、Pythonを使ってリスト内のすべての数値を掛け合わせる(乗算する)方法を解説します。まず、ユーザーからの入力を受け取るためのリストを3つ作成し、ここでは「走査(トラバース)」という手法を利用します。 基本的な考え方はシンプルです。積を表す変数の初期値を 1 に設定し、リストの先頭から末尾まで要素を順にたどりながら、各数値をひとつずつ積に掛けていきます。すべての要素を処理し終えた時点で、変数にはリスト全体の積が格納されています。 実行例 入力: A=[5,6,3] 出力: 90 説明: 5×6×3 アルゴリズム ステップ1: すべての数値をリスト(lst)に入力する。 ステ