ホームページ >バックエンド開発 >Python チュートリアル >Python リスト内のすべての要素が等しいかどうかを効率的に確認するにはどうすればよいですか?

Python リスト内のすべての要素が等しいかどうかを効率的に確認するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-01 13:03:15289ブラウズ

How Can I Efficiently Check if All Elements in a Python List are Equal?

リスト要素の等しいかどうかを確認する

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 を返します。

これらのメソッドは効率的ですが、別のワンライナーも検討できます。

  1. セットに変換: 次のことを確認します。結果のセットの長さは 1 以下です。
  2. 最初のものと比較項目: リストを、最初の項目のみが繰り返されたリストと比較します。
  3. 最初の項目の出現回数: リスト内の最初の項目の数が次と等しいかどうかを確認します。

これらの代替方法はメモリ消費量が少なく、異なるパフォーマンス特性が得られる可能性があります。ただし、メモリ コピーの可能性やリストの性質に応じた効率の変化など、制限を考慮することが重要です。

以上がPython リスト内のすべての要素が等しいかどうかを効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。