Assurez-vous que tous les éléments de la liste sont les mêmes en Python

J'étais réticent à continuer à divulguer des informations incorrectes, alors je les ai réécrites. J'ai essayé d'écrire de plusieurs façons tout en reflétant les points que j'ai reçus.

la mise en oeuvre

Jugez en frappant le premier élément avec un autre élément

def map_all(es):
    return all([e == es[0] for e in es[1:]]) if es else False

Jugez par le nombre d'éléments lorsque les éléments en double sont supprimés

def set_list(es):
    return len(list(set(es))) == 1

Jugement en frappant le premier élément avec un autre élément (récursif)

def recursive(es):
    return _rec(es, es[0], True) if es else False

def _rec(es, head, acc):
    return _rec(es[1:], head, acc and head == es[0]) if es else acc

Dupliquer le premier élément et comparer pour juger

def multi_diff(es):
    return es == [es[0]] * len(es) if es else False

tester

La dernière fois, c'était tellement bon que je l'ai testé dans une certaine mesure cette fois ...

def tests(expected, elements):
    assert map_all(elements) == expected
    assert set_list(elements) == expected
    assert recursive(elements) == expected
    assert multi_diff(elements) == expected

T, F, N = True, False, None

tests(True, [-1])
tests(True, [0])
tests(True, [1])
tests(True, [2])
tests(True, ['T'])
tests(True, [T])
tests(True, [N])

tests(True, [-1, -1])
tests(True, [0, 0])
tests(True, [1, 1])
tests(True, [2, 2])
tests(True, ['T', 'T'])
tests(True, [T, T])
tests(True, [F, F])
tests(True, [N, N])

tests(True, [-1, -1, -1])
tests(True, [0, 0, 0])
tests(True, [1, 1, 1])
tests(True, [2, 2, 2])
tests(True, ['T', 'T', 'T'])
tests(True, [T, T, T])
tests(True, [F, F, F])
tests(True, [N, N, N])


tests(False, [])

tests(False, [0, 1])
tests(False, [1, 0])
tests(False, [0, 2])
tests(False, [1, 2])
tests(False, ['T', 'F'])
tests(False, ['F', 'T'])
tests(False, [T, F])
tests(False, [F, T])
tests(False, [T, N])
tests(False, [N, F])
tests(False, [N, 0])
tests(False, [0, N])

tests(False, [0, 0, 1])
tests(False, [0, 1, 0])
tests(False, [T, F, F])
tests(False, [F, T, F])
tests(False, [F, F, T])
tests(False, [F, T, T])
tests(False, [T, F, T])
tests(False, [T, T, F])
tests(False, [T, T, N])


tests(True, [[]])
tests(True, [[], []])
tests(True, [[], [], []])
tests(True, [[5]])
tests(True, [[5], [5]])
tests(True, [[5], [5], [5]])

tests(False, [[],  [5]])
tests(False, [[3], [5]])
tests(False, [[3], [3, 3]])

en conclusion

La dernière fois que j'ai dit ceci, oh embarrassant ...

Recommended Posts

Assurez-vous que tous les éléments de la liste sont les mêmes en Python
[Python] Affiche toutes les combinaisons d'éléments de la liste
[Python] Combine tous les éléments dans un tableau
Déterminer si tous les éléments de la liste sont présents dans la clé dict
[python] Vérifier les éléments de la liste tous, tous
Copiez la liste en Python
Obtenir des éléments de liste en Python
En Python, les éléments de la liste sont triés et sortis sous forme d'éléments et de multiples.
Obtenez le nombre d'éléments spécifiques dans la liste python
Supprimer plusieurs éléments dans la liste python
[PyTorch] Vérifiez si le modèle et l'ensemble de données sont en mode cuda
python Remarque: déterminez si l'argument de ligne de commande est dans la liste
Tous les éléments bougent (ne restent pas dans la même position) shuffle
Prenez la somme logique de List en Python (fonction zip)
[python] Générer une séquence qui considère les mêmes éléments
Obtenir la liste de codes EDINET en Python
Python open et io.open sont les mêmes
[Python] Trier la liste de pathlib.Path dans l'ordre naturel
Vérifiez si les caractères sont similaires en Python
Obtenir uniquement les éléments de sous-classe dans une liste
Sélectionnez au hasard des éléments dans la liste (tableau) en python
Trier les éléments de la liste dans l'ordre spécifié en Python
[Python] Manipulation d'éléments dans une liste (tableau) [Trier]
Comment supprimer les éléments en double dans la liste Python 3
[Python] Solution au problème que les éléments sont liés lors de la copie d'une liste
Comment obtenir une liste de fichiers dans le même répertoire avec python
Liste triée en Python
Liste de filtres en Python
La chose semblable à une recherche de liste en Python
À propos de __all__ en python
[python] Récupère la liste des classes définies dans le module
[Python] Manipulation des éléments dans la liste (tableau) [Ajouter / Supprimer]
Obtenir la taille (nombre d'éléments) de Union Find en Python
Regrouper par éléments consécutifs d'une liste en Python
[Python] Comment afficher les valeurs de liste dans l'ordre
Utilisation de l'application LibreOffice en Python (1) Où sont les macros?
[Python] Assurez-vous que la fonction reçue est une fonction définie par l'utilisateur
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Trouver des erreurs en Python
Ne faites pas test.py en Python!
Comment vérifier si le contenu du dictionnaire est le même en Python par valeur de hachage
Créer un bookmarklet en Python
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Méthodes disponibles dans la liste
Rendre Opencv disponible en Python
Segfo python en 2 lignes
Créer une nouvelle liste en combinant des éléments en double dans la liste
Je veux rendre le type de dictionnaire dans la liste unique
[Python3] "A // B" et "math.floor (A / B)" ne sont pas toujours les mêmes! ??
Pour vérifier si la clé spécifiée se trouve dans le compartiment spécifié dans Boto 3
Python> liste> append () et extend ()> append: Ajouter une liste | extend: Ajouter un élément de liste | Ajouter une liste avec + =
[Python] Afficher uniquement les éléments de la liste côte à côte [Vertical, horizontal]
[Python] Réduisons le nombre d'éléments dans le résultat dans le fonctionnement de l'ensemble
Activer le moteur d'analyse morphologique MeCab en Python3 (version mars 2016)
python: utilisez les variables définies dans le format de chaîne telles quelles
Comment utiliser l'astérisque (*) en Python. C'est peut-être tout? ..
[python] Obtenez le rang des valeurs dans la liste par ordre croissant / décroissant
Jetez quelque chose dans Kinesis avec python et assurez-vous qu'il est dans
L'histoire selon laquelle le remplacement de la liste bidimensionnelle n'a pas fonctionné en python