Pythonでリストの全要素が特定の数字だけで構成されているか確認する方法
Pythonでは、リスト内のすべての要素が特定の数字だけで構成されているかどうかを確認したい場面があります。たとえば、入力データのバリデーションや条件分岐の前処理などが挙げられます。このような場合は、joinメソッドとシンプルな反復処理を組み合わせることで、効率的に判定できます。
サンプルコード
以下に具体的な実装例を示します。
my_list = [415, 133, 145, 451, 154]
print("The list is :")
print(my_list)
my_digits = [1, 4, 5, 3]
digit_string = ''.join([str(ele) for ele in my_digits])
all_elems = ''.join([str(ele) for ele in my_list])
my_result = True
for element in all_elems:
for ele in element:
if ele not in digit_string:
my_result = False
break
if(my_result == True):
print("All elements have been made from required digits")
else:
print("All elements haven't been made from required digits")実行結果
The list is : [415, 133, 145, 451, 154] All elements have been made from required digits
コードの解説
- まず、判定対象となる整数のリスト
my_listを定義し、コンソールに表示します。 - 次に、使用を許可する数字のリスト
my_digitsを定義します。 - リスト内包表記を使って
my_digitsの各要素を文字列に変換し、joinメソッドで1つの文字列に連結します。これにより「1453」という許可された数字の集合が得られます。 - 同様に、別のリスト内包表記で
my_listの全要素を文字列化し、連結したものを別の変数に代入します。 - 判定結果を格納する変数
my_resultを、初期値としてTrueで定義します。 - 連結された文字列を1文字ずつ反復処理し、許可された数字の文字列に含まれていない文字が見つかった時点で、
my_resultをFalseに設定してループを抜けます。 - 処理完了後も
my_resultがTrueのままなら、すべての要素が必要な数字だけで構成されていることを示すメッセージをコンソールに出力します。
より簡潔な方法:all()関数を活用する
上記のコードはPythonicなall()関数を使うことで、さらに簡潔に書き換えられます。
my_list = [415, 133, 145, 451, 154]
my_digits = {1, 4, 5, 3}
result = all(set(int(d) for d in str(num)) <= my_digits for num in my_list)
if result:
print("All elements have been made from required digits")
else:
print("All elements haven't been made from required digits")この方法では、各要素を文字列化してから個々の数字をセットに変換し、それが許可された数字のセットの部分集合であるかをall()で一括判定しています。コードが短くなるだけでなく、意図も明確になり、可読性が向上します。
-
Pythonでネストされたリストの中に特定のリストが存在するか確認する方法
Pythonでは、リストをネスト(入れ子)にすることができます。つまり、リストの要素そのものがリストであるケースです。本記事では、ある特定のリストが、外側のより大きなリストの要素として存在するかどうかを判定する方法を解説します。方法1:in演算子を使う最もシンプルで直感的な方法は、in 演算子を使うことです。内側のリストが、外側のリストの要素として含まれているかどうかを直接チェックできます。コード例listA = [[-9, -1, 3], [11, -8], [-4, 434, 0]] search_list = [-4, 434, 0] # 元のリストを表示 print(Given Li
-
【Python】リスト内のすべての要素が同じ値かどうかを確認する3つの方法
リスト内の要素がすべて同じ値であるかどうかを確認したい場面はよくあります。たとえば、データの整合性チェックやバリデーション処理などで必要になることがあります。Pythonでは、このような判定をいくつかの方法で実装できます。本記事では、代表的な3つのアプローチをサンプルコードとともにわかりやすく解説します。1. forループを使う方法まずリストの先頭要素を取得し、forループで各要素を順番に先頭要素と比較していきます。途中で一致しない要素が見つかった時点でループを抜け、結果をFalseにするのがポイントです。サンプルコードList = [Mon, Mon, Mon, Mon] result =