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

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

Mary-Kate Olsen
Libérer: 2024-11-28 12:49:14
original
933 Les gens l'ont consulté

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

Comment déterminer si tous les éléments d'une liste sont égaux en Python

En Python, il est courant de rencontrer des listes contenant divers éléments de données . Souvent, nous devons déterminer si tous les éléments d’une liste sont égaux. Cela peut être utile pour la validation des données et les contrôles de cohérence.

Solutions pythoniques utilisant des itérateurs

L'approche la plus pythonique consiste à utiliser la fonction itertools.groupby() :

from itertools import groupby

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

Cette solution parcourt la liste d'entrée, regroupant les éléments égaux à l'aide de groupby(). S'il n'existe qu'un seul groupe (tous les éléments sont égaux), la fonction renvoie True. Sinon, il renvoie False.

Vous pouvez également utiliser l'approche itérative suivante 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)
Copier après la connexion

Solutions One-Liner

Python propose plusieurs solutions concises sur une seule ligne :

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
Copier après la connexion

Performance Considérations

Le choix de la solution dépend de facteurs tels que la taille de la liste d'entrée et la répartition des éléments en son sein. Généralement, les solutions utilisant des itérateurs sont plus efficaces pour les grandes listes. Les solutions sur une seule ligne peuvent convenir aux listes plus petites ou lorsque la vitesse n'est pas un facteur critique.

Conclusion

Python propose plusieurs façons de vérifier si tous les éléments d'une liste sont égaux. L'approche la plus pythonique consiste à utiliser groupby() ou des itérateurs. Les solutions monolignes sont concises mais peuvent présenter certains inconvénients en termes de performances. Lorsque vous choisissez une solution, tenez compte des exigences spécifiques de votre application.

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