Maison >développement back-end >Tutoriel Python >Comment puis-je vérifier efficacement si tous les éléments d'une liste Python sont égaux ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-12-01 13:03:15290parcourir

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

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

En Python, déterminer si tous les éléments d'une liste sont égaux peut être obtenu en utilisant différentes approches. Une méthode recommandée consiste à utiliser la fonction itertools.groupby(). Cette fonction regroupe des éléments consécutifs avec des valeurs identiques, renvoyant une séquence de tuples contenant des clés de groupe (valeurs d'éléments) et leurs groupes respectifs.

from itertools import groupby

def all_equal(iterable):
    g = groupby(iterable)
    return next(g, True) and not next(g, False)

Ce code vérifie s'il n'y a qu'un seul groupe dans la liste, indiquant que tous les éléments sont égaux. Si tel est le cas, il renvoie True ; sinon, il renvoie False en utilisant la propriété d'évaluation de court-circuit.

Vous pouvez également utiliser une solution plus concise sans groupby() :

def all_equal(iterator):
    iterator = iter(iterator)
    try:
        first = next(iterator)
    except StopIteration:
        return True
    return all(first == x for x in iterator)

Cette approche initialise un itérateur et récupère le premier élément. Par la suite, il parcourt les éléments restants, en les comparant au premier. Si une différence est rencontrée, la fonction renvoie False ; sinon, il renvoie True.

Bien que ces méthodes soient efficaces, il existe des solutions alternatives que vous pouvez envisager :

  1. Convertir en un ensemble : Vérifiez si la longueur de l'ensemble résultant est inférieure ou égale à 1.
  2. Comparez au premier élément : Comparez la liste à une liste contenant uniquement le premier élément répété.
  3. Compte des occurrences du premier élément : Vérifiez si le nombre du premier élément de la liste est égal à la longueur de la liste.

Ces alternatives peuvent être moins gourmandes en mémoire et produire des caractéristiques de performances différentes. Cependant, il est important de considérer leurs limites, telles que les copies de mémoire potentielles et leur efficacité variable selon la nature de la liste.

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!

Déclaration:
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