Python
 Computer >> コンピューター >  >> プログラミング >> Python

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_resultFalseに設定してループを抜けます。
  • 処理完了後もmy_resultTrueのままなら、すべての要素が必要な数字だけで構成されていることを示すメッセージをコンソールに出力します。

より簡潔な方法: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()で一括判定しています。コードが短くなるだけでなく、意図も明確になり、可読性が向上します。

  1. Pythonでネストされたリストの中に特定のリストが存在するか確認する方法

    Pythonでは、リストをネスト(入れ子)にすることができます。つまり、リストの要素そのものがリストであるケースです。本記事では、ある特定のリストが、外側のより大きなリストの要素として存在するかどうかを判定する方法を解説します。方法1:in演算子を使う最もシンプルで直感的な方法は、in 演算子を使うことです。内側のリストが、外側のリストの要素として含まれているかどうかを直接チェックできます。コード例listA = [[-9, -1, 3], [11, -8], [-4, 434, 0]] search_list = [-4, 434, 0] # 元のリストを表示 print(Given Li

  2. 【Python】リスト内のすべての要素が同じ値かどうかを確認する3つの方法

    リスト内の要素がすべて同じ値であるかどうかを確認したい場面はよくあります。たとえば、データの整合性チェックやバリデーション処理などで必要になることがあります。Pythonでは、このような判定をいくつかの方法で実装できます。本記事では、代表的な3つのアプローチをサンプルコードとともにわかりやすく解説します。1. forループを使う方法まずリストの先頭要素を取得し、forループで各要素を順番に先頭要素と比較していきます。途中で一致しない要素が見つかった時点でループを抜け、結果をFalseにするのがポイントです。サンプルコードList = [Mon, Mon, Mon, Mon] result =