Python でリスト内のすべての要素が等しいかどうかを判断する方法
Python では、さまざまなデータ要素を含むリストに遭遇するのが一般的です。多くの場合、リスト内のすべての要素が等しいかどうかを判断する必要があります。これは、データの検証と整合性チェックに役立ちます。
イテレータを使用した Python 的なソリューション
最も Python 的なアプローチには、itertools.groupby() 関数の使用が含まれます。
from itertools import groupby def all_equal(iterable): g = groupby(iterable) return next(g, True) and not next(g, False)
このソリューションは、入力リストを反復処理し、groupby() を使用して等しい要素をグループ化します。グループが 1 つだけ存在する (すべての要素が等しい) 場合、関数は True を返します。それ以外の場合は、False を返します。
または、groupby() を使用せずに次の反復アプローチを利用することもできます。
def all_equal(iterator): iterator = iter(iterator) try: first = next(iterator) except StopIteration: return True return all(first == x for x in iterator)
ワンライナー ソリューション
Python には簡潔な 1 行がいくつか用意されていますソリューション:
def all_equal2(iterator): return len(set(iterator)) <= 1 def all_equal3(lst): return lst[:-1] == lst[1:] def all_equal_ivo(lst): return not lst or lst.count(lst[0]) == len(lst) def all_equal_6502(lst): return not lst or [lst[0]]*len(lst) == lst
パフォーマンスに関する考慮事項
ソリューションの選択は、入力リストのサイズやリスト内の要素の分布などの要因によって異なります。一般に、大きなリストに対しては、イテレータを使用したソリューションの方が効率的です。一行のソリューションは、リストが小さい場合、または速度が重要な要素ではない場合に適している可能性があります。
結論
Python には、リスト内のすべての要素があるかどうかを確認する複数の方法が用意されています。等しいです。最も Python 的なアプローチには、groupby() またはイテレータの使用が含まれます。一行のソリューションは簡潔ですが、パフォーマンスにいくつかの欠点がある可能性があります。ソリューションを選択するときは、アプリケーションの特定の要件を考慮してください。
以上がPython リスト内のすべての要素が同一かどうかを効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。