リスト要素の等しいかどうかを確認する
Python では、リスト内のすべての要素が等しいかどうかをさまざまな方法で判断できます。推奨される方法の 1 つは、 itertools.groupby() 関数を利用することです。この関数は、同一の値を持つ連続する要素をグループ化し、グループ キー (要素値) とそれぞれのグループを含むタプルのシーケンスを返します。
from itertools import groupby def all_equal(iterable): g = groupby(iterable) return next(g, True) and not next(g, False)
このコードは、リスト内にグループが 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)
このアプローチでは、反復子を初期化し、最初の要素。その後、残りの要素を反復処理し、最初の要素と比較します。何らかの違いが見つかった場合、関数は False を返します。それ以外の場合は、True を返します。
これらのメソッドは効率的ですが、別のワンライナーも検討できます。
これらの代替方法はメモリ消費量が少なく、異なるパフォーマンス特性が得られる可能性があります。ただし、メモリ コピーの可能性やリストの性質に応じた効率の変化など、制限を考慮することが重要です。
以上がPython リスト内のすべての要素が等しいかどうかを効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。