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

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

Mary-Kate Olsen
リリース: 2024-11-28 12:49:14
オリジナル
989 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート