Comment vérifier efficacement si tous les éléments d'une liste Python sont égaux ?

Barbara Streisand
Libérer: 2024-11-27 12:35:14
original
831 Les gens l'ont consulté

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

Vérification de l'égalité des éléments dans une liste

Pour déterminer si tous les éléments d'une liste sont égaux, nous devons parcourir la liste et évaluer leur égalité à l’aide de l’opérateur d’égalité standard. Une approche Pythonique de ce problème consiste à utiliser des opérations booléennes et des itérateurs.

Solution 1 : Utiliser des itérateurs et Groupby

Une solution efficace consiste à exploiter itertools.groupby, qui regroupe les éléments adjacents avec des valeurs égales. La fonction suivante utilise groupby pour vérifier si tous les éléments sont égaux :

from itertools import groupby

def all_equal_groupby(iterable):
    g = groupby(iterable)
    return next(g, True) and not next(g, False)
Copier après la connexion

Solution 2 : Itérateurs alternatifs

Alternativement, nous pouvons utiliser des itérateurs pour parcourir la liste et effectuez des comparaisons élément par élément :

def all_equal_iter(iterator):
    iterator = iter(iterator)
    try:
        first = next(iterator)
    except StopIteration:
        return True
    return all(first == x for x in iterator)
Copier après la connexion

Performance Considérations

Le choix de la solution dépend des exigences spécifiques du problème. Pour les grandes listes ou lorsqu'une résiliation anticipée est souhaitée (si une inégalité est trouvée), la solution basée sur le groupe est plus efficace. Cependant, si l'utilisation de la mémoire pose problème, la solution basée sur les itérateurs est préférable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal