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

【Python】文字列リスト内のすべての要素が数値かどうかを判定する方法

文字列のリスト内にあるすべての要素が数値であるかどうかを確認したい場合、Pythonの組み込み関数「all()」を使用すると、簡潔に記述できます。

all() 関数は、イテラブル(リストなど)内のすべての要素が真(True)と評価される場合に True を返し、1つでも偽(False)の要素があれば False を返します。これと文字列メソッド「isdigit()」を組み合わせることで、リスト全体が数値のみで構成されているかどうかを効率的に判定できます。

サンプルコード

以下に具体的な実装例を示します。

my_list = ["434", "823", "98", "74", '9870']

print("リストの内容:")
print(my_list)

my_result = all(ele.isdigit() for ele in my_list)

if(my_result == True):
   print("リスト内のすべての要素は数値です")
else:
   print("リスト内の要素には数値以外のものが含まれています")

実行結果

リストの内容:
['434', '823', '98', '74', '9870']
リスト内のすべての要素は数値です

コードの解説

  • まず、数値を表す文字列からなるリストを定義し、その内容をコンソールに表示します。

  • ジェネレータ式と all() 関数を組み合わせて、リスト内のすべての要素が数字のみで構成されているかどうかをチェックします。

  • 各要素の判定には、文字列が数字のみで構成されている場合に True を返す「isdigit()」メソッドを使用しています。

  • 判定結果は変数 my_result に代入されます。

  • 最後に、結果のブール値(True / False)に応じて、対応するメッセージをコンソールに出力します。

補足:isdigit() メソッドの注意点

isdigit() は半角アラビア数字(0〜9)のみで構成された文字列に対して True を返します。そのため、次のような文字列には注意が必要です。

  • 負の数(例:"-123")→ 記号「-」が含まれるため False を返します。

  • 小数(例:"3.14")→ 小数点「.」が含まれるため False を返します。

負の数や小数も許容したい場合は、正規表現モジュール「re」を使用するか、例外処理(try-except)と float() への変換を組み合わせる方法が有効です。

  1. Pythonでブロックの高さリストが直線y=xに対して対称かどうかを判定するプログラム

    数値のリスト nums があるとします。これは正方形のブロックを横一列に並べたときの、各列の高さを表しています。ここで、このブロック形状が直線 y = x に対して対称であるかどうかを判定する必要があります。 たとえば、入力が nums = [7, 5, 3, 2, 2, 1, 1] の場合、出力は True になります。 解き方のアプローチ この問題は、リストの両端から同時に走査していくことで効率的に判定できます。手順は次のとおりです。 i を 0、j を「リストの長さ - 1」で初期化します。 i <= j である間、次の処理を繰り返します。 h := nums[j](右側の

  2. 【Python】文字列がすべてユニークな文字で構成されているか判定する方法

    本記事では、与えられた文字列に含まれる文字がすべて一意(ユニーク)であるかどうかを判定するPythonプログラムについて、その解法とアプローチをわかりやすく解説します。 問題の概要 文字列が入力として与えられたとき、その文字列に含まれるすべての文字が重複なく一意であるかどうかを判定します。たとえば「abcde」はすべて異なる文字で構成されているためTrue、「tutorialspoint」のように同じ文字が複数回出現する場合はFalseとなります。 アプローチ この問題は、以下のような手順で効率的に解くことができます。 ブール値の配列を用意する: 各インデックス i が「アルファベット(AS