【Python】リスト内のすべての要素が同じ値かどうかを確認する3つの方法
リスト内の要素がすべて同じ値であるかどうかを確認したい場面はよくあります。たとえば、データの整合性チェックやバリデーション処理などで必要になることがあります。Pythonでは、このような判定をいくつかの方法で実装できます。本記事では、代表的な3つのアプローチをサンプルコードとともにわかりやすく解説します。
1. forループを使う方法
まずリストの先頭要素を取得し、forループで各要素を順番に先頭要素と比較していきます。途中で一致しない要素が見つかった時点でループを抜け、結果をFalseにするのがポイントです。
サンプルコード
List = ['Mon', 'Mon', 'Mon', 'Mon']
result = True
# 先頭の要素を取得
first_element = List[0]
# すべての要素を先頭の要素と比較
for word in List:
if first_element != word:
result = False
break
if result:
print("すべての要素は一致しています")
else:
print("一致していない要素があります")上記のコードを実行すると、次のような結果が出力されます。
すべての要素は一致しています
2. all()関数を使う方法
all()関数は、リスト内の各要素に対して条件式を適用し、そのすべてがTrueの場合にのみTrueを返します。forループを明示的に書く代わりにジェネレータ式と組み合わせられるため、より簡潔に記述できるのが特徴です。
サンプルコード
List = ['Mon', 'Mon', 'Tue', 'Mon']
# all()メソッドを使用
result = all(element == List[0] for element in List)
if result:
print("すべての要素は一致しています")
else:
print("一致していない要素があります")上記のコードを実行すると、次のような結果が出力されます。
一致していない要素があります
3. count()メソッドを使う方法
リストのcount()メソッドは、指定した要素がリスト内に出現する回数を返します。もしリスト内の要素がすべて同じであれば、len()で取得したリストの長さと、count()で数えた出現回数が必ず一致するはずです。この性質を利用した判定方法です。
サンプルコード
List = ['Mon', 'Mon', 'Mon', 'Mon']
# count()の結果とlen()の結果が一致するかを確認
result = List.count(List[0]) == len(List)
if result:
print("すべての要素は一致しています")
else:
print("一致していない要素があります")上記のコードを実行すると、次のような結果が出力されます。
すべての要素は一致しています
補足:空のリストの扱いに注意
空のリストが渡される可能性がある場合は、all()を使う方法が最も安全です。all()は空のイテラブルに対してTrueを返すため、エラーが発生しません。一方、List[0]やcount()を使う方法では、空のリストに対してIndexErrorが発生する恐れがあるため、処理前にlen()で要素数を確認しておくとよいでしょう。
-
Pythonでタプル内に含まれるリスト要素の出現回数をカウントする方法
Pythonでは、リストとタプルを組み合わせてデータを扱う場面が多くあります。本記事では、リストの要素がタプル内にいくつ含まれているか(出現回数)をカウントする方法を、2つのアプローチから解説します。collections.Counterを使う方法まず紹介するのは、標準ライブラリcollectionsモジュールのCounterクラスを使った方法です。Counterを使うと、タプル内の各要素の出現回数を簡単に集計できます。その後、for文とin演算子を組み合わせて、リストに含まれる要素に対応するカウント値だけを合計します。コード例from collections import Counter A
-
Pythonでリスト内のすべての値が指定値より小さいかどうかを判定する方法
Pythonによるデータ分析では、1つの数値と複数の値を含むリストを比較する場面によく出会います。例えば、「ある基準値がリスト内のすべての要素よりも小さいかどうか」を確認したいケースです。本記事では、この判定を実現するための2つの方法——forループを使う方法とall()関数を使う方法——を、具体的なサンプルコードとともに解説します。方法1:forループを使うまずは最も基本的なアプローチです。リストを反復処理しながら、指定した値とリスト内の各要素を順番に比較します。すべての要素との比較で条件が成立すれば「yes」を出力し、1つでも条件を満たさない要素があればその時点で処理を中断して「No」を出